这对我来说是一个非常有趣的错误,因为实际上一小时前这段代码运行良好,但现在不行了。
基本上发生的事情是下一行的第一个“块”的第一个字符被附加为最后一个“块”的最后一个字符
其中“块”是指该行/列中保存的字符串。
例如,假设数组应该是
1,2,3,Hello
4,5,6,Wonder
它被读为
1,2,3,Hello4,
6,Wonder, ,
这是我一直在使用的逻辑。我真的不知道发生了什么变化,所以任何建议都会很好。
tableFile = fopen(argv[4], "r");
//pulling the table data from the file
char tableArray[30][50][256];
char c;
int i=0, j=0, k=0;
while(c != EOF){
c = fgetc(tableFile);
switch(c)
{
case ',':
tableArray[i][j++][k]='\0';
k=0;
break;
case '\n':
tableArray[i++][j][k]='\0';
j=0;
k=0;
break;
case '\r':
break;
case EOF:
break;
default:
tableArray[i][j][k++] = c;
break;
}
} //end file transfer
//Just to display, ignore magic numbers as (mostly) irrelevant
int a, b;
for (a = 0; a < 20; a++)
{
for (b = 0; b < 47; b++)
{
printf ("%s", tableArray[a][b]);
if (b<46)
printf (", ");
}
printf ("\n");
}
fclose(tableFile);