2
我想從文件行中逐行讀取值並打印它們..輸出結果是它打印了最後一行兩次..爲什麼它會這樣做是因爲最後一行是文件的結尾?從C中讀取文件錯誤
int main(int argc, char* argv[]) {
FILE *file = fopen(argv[1], "r");
if (file == NULL){
printf("error\n");
return 1;
}
unsigned long long address;
int rv = fscanf(file, "%lli", &address);
printf("%lli\n", address);
do{
rv = fscanf(file, "%lli", &address);
printf("%lli\n", address);
} while (rv!=EOF);
fclose(file);
return 0;
}
使用'「%llu」'而不是''%lli「'來讀取'unsigned long long'值。 (不同於''%lli'',''%lld''和''%llu'''都不支持十六進制和八進制;這似乎不是一個好的解決方案。) –
'if(file == NULL ){perror(argv [1]); return 1;}' –