我想不通,为什么我的while循环将无法工作。 代码工作没有它正常...代码的目的是找到一个bin文件一个秘密消息。 所以我的代码找到的字母,但现在当我试图得到它的循环,直到文件末尾,这是行不通的。 我是新在此。 我究竟做错了什么?
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");
}
编辑:
看着我在调试程序代码后,它看起来像在while循环中有“GETC”扔一切都关掉。 我固定它通过创建一个名为信新的焦炭,然后用这个代替我的代码:
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);
}
现在它就像一个魅力。 任何建议是当然欢迎。 感谢大家。