6
#include <stdio.h>
#include <stdlib.h>
#define FILE_NAME "ff.txt"
int main() {
char x[10],y[10];
FILE *fp;
fp = fopen(FILE_NAME, "r+");
if (fp == NULL) {
printf("couldn't find %s\n ",FILE_NAME);
exit(EXIT_FAILURE);
}
fprintf(fp,"Hello2 World\n");
fflush(fp);
fscanf(fp,"%s %s",x,y);
printf("%s %s",x,y);
fclose(fp);
return 0;
}
这里是我试图做的事情的简化版本。此代码不会在控制台中打印任何内容。如果我删除fprintf
调用,它将打印文件中的前两个字符串,对我来说它是Hello2 World
。这是为什么发生?即使我fflush
的fp
?在C中一起使用fscanf和fprintf
谢谢!我会在10分钟内接受你的回答。 –
'rewind(fp)'可能更好,因为它也具有准备在读和写之间切换的效果(用于更新的文件)。 – Peter
@彼得 - 谢谢,我更新了答案。 –