好吧,为了合理地了解正在发生的事情......
我正在将 csv 表中的数据读入一个二维数组,如下所示:
tableFile = fopen(argv[4], "r");
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;
default:
tableArray[i][j][k++] = c;
break;
}
} //end file transfer
fclose(tableFile);
读完文件后,我做了一堆无关紧要的垃圾,但问题是,当我从从所述表 printf 获取的数据中打印一些东西时,我会发疯。
例如,如果我要尝试说类似的话。
char *string = malloc(256*sizeof(char));
string = tableArray[9][46];
printf("What the heck is going on with this string %s ", string);
看到 %s 之后的那个空格了吗?它实际上会覆盖“W”,并且 printf 会显示类似“帽子这个强大的 HELLO 正在发生的事情”
有任何想法吗?!?!
谢谢!