从某个文件写入和读取

时间:2017-01-24 13:08:36

标签: c file fopen

我有类似的代码。

#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中不存在数据。 为什么? 如果我在写完后关闭文件然后阅读全部工作。

2 个答案:

答案 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);