我试图用C语言将一个包含整数的.csv文件解析成一个二维数组,但我的程序无法运行,我不确定原因.
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
(上面包含的是我试图解析的.csv文件,它只是1和2的整数.)
我的程序:
#include <stdio.h>
#define ROWS 12
#define COLUMNS 12
int main () {
int array [LEVEL_ROWS] [LEVEL_COLUMNS];
FILE *file;
file = fopen("data.csv","r");
if (file == NULL)
{
printf("error opening file");
return 1;
}
for (int i = 0; i < COLUMNS; i++)
{
for(int j = 0; j < ROWS; j++)
{
if(fscanf(file,"%d,",&array[i][j] )!=1)
{
fprintf(stderr,"error reading from file\n");
fclose(file);
return 1;
}
}
}
fclose(file);
for(int i = 0; i < COLUMNS; i++)
{
for (int j =0; j < ROWS; j++)
{
printf("%d ", array[i][j]);
}
printf("\n");
}
return 0;
}
但是,我的程序打印的.csv文件的内容完全错误,我找不出原因
打印输出(与.csv文件的实际内容不同):
2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 2 2 1 1 1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 2 2 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
1 1 2 2 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
2 2 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 2 2
对于哪里出了问题,有什么帮助和解释吗?谢谢!