title: While (( c = getc(file)) != EOF) loop won't stop executing
body: <p>I can't figure out why my while loop won't work. The code works fine without it... The purpose of the code is to find a secret message in a bin file. So I got the code to find the letters, but now when I try to get it to loop until the end of the file, it doesn't work. I'm new at this. What am I doing wrong?</p>
  
  <pre><code>main(){
  
  FILE* message;
  int i, start;
  long int size;
  char keep[1];
  
  message = fopen("c:\\myFiles\\Message.dat", "rb");
  
  if(message == NULL){
      printf("There was a problem reading the file. \n");
      exit(-1);
  }
  
  //the first 4 bytes contain an int that tells how many subsequent bytes you can throw away
  fread(&amp;start, sizeof(int), 1, message);
  printf("%i \n", start); //#of first 4 bytes was 280
  fseek(message, start, SEEK_CUR); //skip 280 bytes
  keep[0] = fgetc(message); //get next character, keep it
  printf("%c", keep[0]); //print character
  
  while( (keep[0] = getc(message)) != EOF) {
      fread(&amp;start, sizeof(int), 1, message);
      fseek(message, start, SEEK_CUR);
      keep[0] = fgetc(message);
      printf("%c", keep[0]);
  }
  
  fclose(message);
  
  system("pause");
  }
  </code></pre>
  
  <p>EDIT:</p>
  
  <p>After looking at my code in the debugger, it looks like having "getc" in the while loop threw everything off. I fixed it by creating a new char called letter, and then replacing my code with this:</p>
  
  <pre><code>fread(&amp;start, sizeof(int), 1, message);
  fseek(message, start, SEEK_CUR);
  
  while( (letter = getc(message)) != EOF) {
      printf("%c", letter);
      fread(&amp;start, sizeof(int), 1, message);
      fseek(message, start, SEEK_CUR);
  }
  </code></pre>
  
  <p>It works like a charm now. Any more suggestions are certainly welcome. Thanks everyone.</p>