Хранить символы в матрице из TXT-файла - PullRequest
0 голосов
/ 05 марта 2019

Я хочу сохранить ту матрицу, которая у меня есть в 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 голосов
/ 05 марта 2019

В приведенной выше программе пробел между элементами массива в 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 .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...