gpt4 book ai didi

c - 如何在 c 中迭代地将文本附加到 .txt 文件

转载 作者:太空宇宙 更新时间:2023-11-04 01:51:42 24 4
gpt4 key购买 nike

我在用 C 语言迭代写入 .txt 文件时遇到困难。

我需要在 for 循环的每次迭代后写出一系列值,这样如果我在任何时候停止我的程序运行,我都不会丢失我已经收集的数据。

如果我运行整个循环,我的代码可以工作,但如果我使用 ctrl+c 命令停止程序运行,因为它花费的时间太长,我的 .txt 文件是空的。

我不知道这是否是 ctrl+c 命令引起的,因为文件没有机会关闭,但是否有其他解决方案?我应该在每次循环迭代期间打开文件并关闭它并附加到 .txt 文件吗?我认为这可能会导致之前写入 .txt 文件的数据被覆盖,也会导致运行时间增加。

这是我目前正在做的一个非常简单的例子,希望它能说明我正在努力完成的事情:

FILE *fp;
fp = fopen("Output.txt", "w");
int a = 0;
int b = 0;
int c = 0;
for(int i=0;i<500;i++)
{
a = a+1;
b = b+1;
c = c+1;
printf("a = %d\tb = %d\tc = %d\n"); // printing to console
fprintf(fp,"%d,%d,%d\n",a,b,c); // printing to file
}
fclose(fp);

最佳答案

您需要fflush在每个 fprintf 到文件之后。

If stream points to an output stream or an update stream in which the most recent operation was not input, fflush()shall cause any unwritten data for that stream to be written to the file, and the last data modification and last file status change timestamps of the underlying file shall be marked for update.

也就是说,

for(int i=0;i<500;i++)
{
a = a+1;
b = b+1;
c = c+1;
printf("a = %d\tb = %d\tc = %d\n"); // printing to console
fprintf(fp,"%d,%d,%d\n",a,b,c); // printing to file
fflush(fp); /* <== here */
}

PS:空白不是稀缺商品。

关于c - 如何在 c 中迭代地将文本附加到 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41940428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com