Solve the following for an input.txt file containing the following: "1 2 3 4"

Microsoft Visual C#
7th Edition
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Joyce, Farrell.
Chapter6: Using Arrays
Section: Chapter Questions
Problem 18RQ
icon
Related questions
Question

Solve the following for an input.txt file containing the following: "1 2 3 4"

#include <stdio.h>
#include <stdlib.h>
void end_now();
char *next_input();

int hash = 8765309;
int INPUTS[4];

void phase03(){
  // TODO: put numbers in input.txt to pass the code below
  int a = atoi(next_input());
  int b = atoi(next_input());
  int c = atoi(next_input());
  int d = atoi(next_input());

  int targ = 0;
  targ |= 1 << (hash % 13);
  targ = targ << (hash % 3);
  targ |= 1 << (hash % 19);
  targ = targ << (hash % 5);
  targ |= 1 << (hash % 31);
  targ = targ << (hash % 7);

  int shot = 0;
  shot |= 1 << a;
  shot |= 1 << b;
  shot |= 1 << c;
  shot |= 1 << d;

  int hit = shot ^ targ;
  hit = !hit;

  if(hit){
    printf("Right on target: nice shootin' bitslinger!\n");
    return;
  }

  printf("Shifty bits hit? Xor not it seems...\n");
  end_now();
}


////////////////////////////////////////////////////////////////////////////////
// additional code to get inputs/start up the program/run main()

#define BUFSIZE 128
char inputs[BUFSIZE][BUFSIZE] = {}; // array of inputs read from input file
int input_idx = -1;                 // index of most recently read input
FILE *input_fh = NULL;              // file handle for inputs

// Open the provided input file
void setup_input(char *fname){
  input_fh = fopen(fname,"r");
  if(input_fh == NULL){
    perror("Couldn't open input file");
    exit(1);
  }
}

// Close the input file
void close_input(){
  if(input_fh == NULL){
    fprintf(stderr,"Input file not open\n");
    exit(1);
  }
  fclose(input_fh);
}

// Retrieve the next input from the file. Empty strings are placed in
// the inputs array if the file is out of input.
char *next_input(){
  input_idx++;
  int ret = fscanf(input_fh, "%s", inputs[input_idx]);
  if(ret != 1){
    fprintf(stderr, "!! No more input: assuming \"\" for input %d\n", input_idx);
    inputs[input_idx][0] = '\0';
  }
  return inputs[input_idx];
}

// Ending sequence for program
void end_now(){
  close_input();
  exit(0);
}

int main(int argc, char *argv[]){
  if(argc < 2){
    printf("usage: %s <infile>\n",argv[0]);
    return 1;
  }
  char *infile = argv[1];
  setup_input(infile);
  printf("Running mock Phase03\n");
  phase03();
  printf("Phase complete\n");
  end_now();
  return 0;
}
    

Expert Solution
steps

Step by step

Solved in 4 steps with 2 images

Blurred answer
Knowledge Booster
ASCII Codes
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Microsoft Visual C#
Microsoft Visual C#
Computer Science
ISBN:
9781337102100
Author:
Joyce, Farrell.
Publisher:
Cengage Learning,
Systems Architecture
Systems Architecture
Computer Science
ISBN:
9781305080195
Author:
Stephen D. Burd
Publisher:
Cengage Learning