在以下C
-代碼我打開一個名爲test.txt
的文件,其中包含幾行。然後我在while循環中讀取這些行,並將它們打印到stdout
。之後,我通過例如文件對文件進行了一些更改。附加數字42
。然後我想打印更改文件的內容到stdout
,但我似乎錯過了那裏的東西。這是到目前爲止我的代碼(評論不必要的):打開文件,打印到標準輸出,追加到文件,並再次打印到標準輸出
#include <stdio.h>
#include <stdlib.h> /* for exit() */
main()
{ /* Declare variables */
FILE *file_read;
char file_save[100];
int number = 42;
/* Open file */
file_read = fopen("/home/chb/files/Cground/test.txt", "a+");
/* Check if file exists. */
if (file_read == NULL) {
fprintf(stderr, "Cannot open file\n");
exit(1);
}
/* Print what is currently in the file */
printf("This is what is currently in the file:\n");
while(fgets(file_save, 100, file_read) != NULL) {
printf("%s", file_save);
}
/* Change the contents of the file */
fprintf(file_read, "%d\n", number);
/* Print what is in the file after the call to fscanf() */
printf("This is what is now in the file:\n");
/* Missing code */
fclose(file_read);
}
看來,一個簡單的while循環放置在Missing code
是,類似於已經使用之前是不夠的一個。有人可以解釋發生了什麼事嗎?我不介意技術問題!
你必須調用fseek(file_read,0,SEEK_SET);首先再次到達文件的開頭。 –
你會發布它作爲一個真正的答案? (出色的名字順便!) –
好的,完成了! (哈哈,是的,謝謝!) –