如何使用过fflush后再继续写入文件呢,在循环之外
时间: 2024-02-18 14:05:05 浏览: 31
在使用fflush函数将缓冲区中的数据强制刷新到文件中后,可以继续向文件中写入数据。如果要在循环之外写入数据,可以重新打开文件并以追加模式打开。例如,下面的示例代码中,我们在for循环内部多次向文件中写入数据,并在循环结束后调用fflush函数将缓冲区中的数据强制刷新到文件中。然后,我们重新打开文件,并以追加模式打开,向文件中写入新的数据。
```c
#include <stdio.h>
int main()
{
FILE *fp;
char str[] = "hello world!";
int i;
fp = fopen("test.txt", "w");
if (fp == NULL) {
printf("Failed to open file.\n");
return -1;
}
for (i = 0; i < 10; i++) {
fprintf(fp, "%s\n", str);
}
fflush(fp); // 刷新缓冲区
fclose(fp);
fp = fopen("test.txt", "a");
if (fp == NULL) {
printf("Failed to open file.\n");
return -1;
}
fprintf(fp, "%s\n", "new data");
fclose(fp);
return 0;
}
```
在这个示例中,我们在for循环内部多次向文件中写入数据,然后在循环结束后调用fflush函数将缓冲区中的数据强制刷新到文件中。然后,我们重新打开文件,并以追加模式打开,向文件中写入新的数据"new data"。最后,关闭文件。这样可以确保之前的数据都已经写入到文件中,并在文件末尾继续写入新的数据。