我一直在尝试一些文件io,并写了以下内容:
#include <stdio.h>
int main(){
char stuff [80];
FILE *file;
file=fopen("hello.cheese", "w+");
fprintf(file, "%s", "cheese");
fscanf(file, "%s", stuff);
printf("%s", stuff);
fprintf(file, "\n%s", stuff);
fclose(file);
return 0;
}
所有这一切都将^ A放在文件中(奶酪下面的下一行)并且什么都不打印。
答案 0 :(得分:0)
您可能希望仔细阅读fopen description,尤其是
当使用更新模式打开文件时(&#39; +&#39;作为mode参数中的第二个或第三个字符),可以在关联的流上执行输入和输出。但是,应用程序应确保输出不直接跟随输入,而无需调用fflush()或文件定位函数(fseek(),fsetpos()或rewind()),并且输入不会直接跟随除非输入操作遇到文件结尾,否则输出时不会调用文件定位功能。
您使用了&#39; w +&#39;模式,允许读写,但没有刷新,也没有在写入后回滚文件指针。
作为旁注,您的代码可能会使用一些错误检查(NULL != file
)。