gpt4 book ai didi

用 C 计算文件中的数字

转载 作者:行者123 更新时间:2023-11-30 20:33:56 26 4
gpt4 key购买 nike

我正在尝试计算文本文件中的数字数量。我有以下代码:

FILE *f1;
char pathname[4096];
snprintf(pathname, 4095, "%s%d%s\n", "Key_", 2, ".txt");

if( ( f1 = fopen(pathname, "w+") ) == NULL )
perror("fopen");

for(int i = 0; i<20; ++i)
fprintf(f1, "%d\n", i+1);

int sum = 0;
int num;
while( fscanf(f1, "%d", &num) != EOF )
++sum;

printf("number of numbers: %d\n", sum);

此代码表示文件中的数字数量为零。但是,如果我关闭文件流并重新打开它,则总和将如预期为 20。知道为什么会发生这种情况吗?谢谢

最佳答案

发生读取的文件指针与写入共享。由于 w+ 创建新文件或截断现有文件,因此文件一开始是空的。当您写入文件时,文件指针向前移动并始终指向文件末尾。现在,当您在该位置读取时,您将立即到达 EOF。

写入后、读取前,使用 fseek(f1, 0, SEEK_SET); 查找开头

关于用 C 计算文件中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43621997/

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