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

时间:2019-03-04 23:01:03

标签: c

我想将矩阵文件中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;
}

*

1 个答案:

答案 0 :(得分: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 .