【发布时间】:2017-04-25 22:25:28
【问题描述】:
我正在尝试计算文本文件中的数字数量。我有以下代码:
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,如预期的那样。知道为什么会这样吗? 谢谢
【问题讨论】:
-
或关闭它并以阅读模式重新打开