void read_char_from_file(FILE *fp, int formatted)
{
char sChar[16], eol;
int col=0, row=0,ind=0,count=0;
char *str2D[4][4]={{ "NULL" }};
while ( (fscanf(fp, "%s%c", sChar,&eol)) != EOF)
{
if(eol!='\n')
{
str2D[row][col]=sChar;
printf("Row: %d, Col: %d = %s\n",row, col,str2D[row][col]);
col++;
}
else {
str2D[row][col]=sChar;
printf("Row: %d, Col: %d = %s\n",row, col,str2D[row][col]);
row++;
col=0;
}
str2D[row][col]=0;
}
int i,j;
for (i=0; i < 3; i++)
{
for(j=0; j <3; j++)
printf("%s",str2D[i][j]);
}
}
上面的代码显示str2D
的最后一个元素,覆盖了所有以前的数组内容。我需要将sChar
复制到2-D字符串数组。
答案 0 :(得分:0)
简答:
您不将内容复制到 str2D[row][col]
指向的内存位置,您只需将指针指向sChar
。因此,正在显示sChar
的最新内容。
答案很长:
您还有其他问题。首先,
{{ "NULL" }};
与{{ NULL }};