我有类似的代码。
#include <stdio.h>
int main() {
FILE* file = fopen("file.txt", "w+");
fputc('A', file);
fflush(file);
char buff;
fscanf(file, "%s", &buff);
printf("read data: %s", &buff);
fclose(file);
return 0;
}
我想要没有关闭文件读取写入的数据。但在buff中不存在数据。 为什么? 如果我在写完后关闭文件然后阅读全部工作。
答案 0 :(得分:2)
您应该使用rewind(file)
将与文件流关联的位置指示器设置为文件的开头。
你的例子,工作正常:
#include <stdio.h>
int main() {
FILE* file = fopen("file.txt", "w+");
fputc('A', file);
fflush(file);
rewind (file);
char buff [80];
fscanf(file, "%s", buff);
printf("read data: %s", buff);
fclose(file);
return 0;
}
答案 1 :(得分:2)
回到文件的开头:
rewind(file);