fscanf使用c读取文件

lig*_*ter 0 c

我的data.txt内容是:

1 2 3 4 5 6
1 2 3 4 5 6
4 5 6 7 8 2
Run Code Online (Sandbox Code Playgroud)

我读取文件,并将值存储到二维int数组

  int record[line_number][6]; 
  int record2[line_number][8];
  int test;

  for(i = 0; i <line_number; i++)
  {
    for(j = 0; j <6; j++)
    {
      fscanf(fptr, "%d", &record[i][j]);
    }
  }
  int a=0;
  int b=0;
  for(a=0; a<i; a++) {
    for(b=0; b<6; b++) {
      printf("%d,", record[a][b]);
    }
    printf("\n");
  }
Run Code Online (Sandbox Code Playgroud)

输出就像一个内存地址,我的代码有什么问题?谢谢!

unw*_*ind 6

您不检查返回值fscanf(),因此您不知道它对所有转换确实成功.如果失败,则输入的值record[][]将是未初始化的,打印出来将打印出内存中发生的任何内容.