我正在尝试从文件中读取数字并将这些数字放入数组中。现在文件看起来像这样:
100
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
显然,第一个数字是数组的大小。当我尝试测试读取时,我得到了8。这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE * filePtr;
int firstNum;
filePtr = fopen("array,dat", "r");
if(filePtr!=NULL)
{
fscanf(filePtr, "%d", &firstNum);
fclose(filePtr);
}
printf("size: %d", firstNum);
return 0;
}
这是我得到的结果:
size: 8
Process returned 0 (0x0) execution time : 0.012 s
Press any key to continue.
那么,如何获得所需的正确数字?为什么显示8?
最佳答案
由于出现array,dat
-> array.dat
错字,您的程序无法打开该文件。因此,它将仅打印未初始化变量firstNum
的内容,该内容可能包含任何垃圾值。
如果像下面这样编写错误处理,那就更好了:
if(filePtr==NULL)
{
printf("Could not open file %s", fileName);
return 0; // no point in continuing execution after this
}