-1

我需要阅读,然后写入文件。我不想使用“r+”,因为无论如何我都会完全覆盖它。但我无法完全关闭文件。如果我第二次尝试打开文件,应用程序会崩溃(无法打开)。有谁知道如何完全关闭文件。

这不是实际的代码,只是我想要做的总结:

FILE* f;
fopen_s(&f, "test.txt", "r");
// read file and edit data
fclose(f);
f = 0;
fopen_s(&f, "test.txt", "w");
fprintf(f, "%c", data);
fclose(f);
4

1 回答 1

2

fclose()关闭文件。它没有半关闭它。“完全关闭”文件的概念不存在。文件要么打开要么关闭。中间没有。

尽管在您的代码中您fopen_s()用于打开文件。我不知道那个功能是什么。我假设它的工作方式类似于fopen(),但它不是返回一个FILE指针,而是将它存储在它的参数中。

因此,您的问题的答案是:要“完全”关闭文件,请使用fclose(). 正如你已经做的那样。这意味着您遇到的问题在其他地方。

于 2012-10-26T17:22:19.723 回答