我想在我的矩阵数组中存储我在txt文件中的矩阵,我想打印它只是为了知道正确存储,但是当我打印程序时只打印一半。
基本上,我运行问题后打印出来:
X . . X
. O
我不知道为什么要打印一半,这是我的代码:
我的tabuleiro.txt是:
3 4
X . . X
. O . X
. . O .
其中两个数字是矩阵的大小。
*
int main() {
FILE *fp;
char matrix[100][100];
int lines=0,columns=0,i=0,j=0,l=0,c=0;
fp = fopen("tabuleiro.txt","r");
fscanf(fp,"%d %d",&lines,&columns);
for(i=1;i<=lines;i++){
for(j=1;j<=columns;j++){
fscanf(fp,"%c",&matrix[i][j]);
printf("%c", matrix[i][j]);
}
}
fclose(fp);
return 0;
}
*
在上面的程序中,没有读取tabuleiro.txt
中数组元素之间的空白。读取第一行时只读取空格
fscanf(fp,"%d %d",&lines,&columns);
使用之前的附加声明修改嵌套的for
循环,如下所示:
char whitespace;
for(i=1;i<=lines;i++){
for(j=1;j<=columns;j++){
fscanf(fp, "%c", &matrix[i][j]);
fscanf(fp, "%c", &whitespace);
printf("%c", matrix[i][j]);
printf("%c", whitespace);
}
}
打印所需的结果
X . . X
. O . X
. . O .