写入和读取某个文件

Write and read from some file

我有一个类似的代码。

#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;
}

我想在不关闭文件的情况下读取写入的数据。但实际上不存在数据。 为什么? 如果我在写入后关闭文件然后读取所有工作。

您应该使用 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;
}

倒回文件开头:

rewind(file);