Хотя цикл ((c = getc (file))! = EOF) не прекратится

Я могу'не могу понять, почему мой цикл пока не победилт работа. Код прекрасно работает без него ... Цель кода - найти секретное сообщение в мусорном файле. Итак, я получил код для поиска букв, но теперь, когда я пытаюсь заставить его зацикливаться до конца файла, он не 'т работа. Я'Я новичок в этом. Что я делаю неправильно?

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(&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(&start, sizeof(int), 1, message);
    fseek(message, start, SEEK_CUR);
    keep[0] = fgetc(message);
    printf("%c", keep[0]);
}

fclose(message);

system("pause");
}

РЕДАКТИРОВАТЬ:

Посмотрев на мой код в отладчике, похоже, чтоЕОКП» в то время как цикл сбросил все. Я исправил это, создав новый символ с именем letter, а затем заменив мой код следующим:

fread(&start, sizeof(int), 1, message);
fseek(message, start, SEEK_CUR);

while( (letter = getc(message)) != EOF) {
    printf("%c", letter);
    fread(&start, sizeof(int), 1, message);
    fseek(message, start, SEEK_CUR);
}

Теперь это работает как шарм. Любые дополнительные предложения, безусловно, приветствуются. Спасибо всем.

Ответы на вопрос(2)

Ваш ответ на вопрос