gpt4 book ai didi

c - 文件不会写入数据,尽管它与其他有效的文件相同

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

我正在为一个类(class)做一个项目。它应该用从 0 到 maxNum 的随机数填充一个数组,记住最大的一个,得到一个平均值,然后将数据复制到 2 个二进制文件中。这是相关部分:

FILE *pf, *rf;
int numCant = 50, maxNum = 100;
int n, i, avg = 0, m = 0;
pf = fopen("file.dat", "wb+");
rf = fopen("backupFile.dat", "wb+");
srand( floor(time( NULL )));

for (i = 0; i < numCant; i++) {
n = rand() % maxNum;
avg += n;
if (m < n)
m = n;
fwrite(&n, sizeof(int), 1, pf);
fwrite(&n, sizeof(int), 1, rf);
}

这对第一个文件 (fp) 非常有效,但出于某种原因,第二个文件 (rf) 不会保存任何内容。该文件将被创建但仍为空。谁能给我解释一下 pfrf 之间的区别,以便只有一个有效?

最佳答案

只需在每个fwrite()之后添加fflush(),就像这样

fwrite(&n, sizeof(int), 1, pf);
fflush(pf);

fwrite(&n, sizeof(int), 1, rf);
fflush(rf);

另外,记得在完成后对每个文件fclose(),并检查fopen()没有返回NULL,这是不保证打开文件进行写入会成功。

关于c - 文件不会写入数据,尽管它与其他有效的文件相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28935253/

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