我正在尝试从文件中读取数字并将这些数字放入数组中。现在文件看起来像这样:

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
}

10-08 15:35