我需要阅读,然后写入文件。我不想使用“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);
答案 0 :(得分:2)
fclose()
关闭文件。它没有一半关闭它。 “完全关闭”文件的概念不存在。文件是打开还是关闭。中间没有。
虽然在您的代码中,您使用fopen_s()
来打开文件。我不知道那个功能是什么。我假设它的工作方式与fopen()
类似,但不是返回FILE
指针,而是将其存储在参数中。
因此,您的问题的答案是:要“完全”关闭文件,请使用fclose()
。就像你已经做的那样。这意味着你在其他地方遇到的问题。