将字符存储在txt文件的矩阵中

问题描述 投票:0回答:1

我想在我的矩阵数组中存储我在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;
}

*

c
1个回答
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 .
© www.soinside.com 2019 - 2024. All rights reserved.