Использование getchar для чтения в пользовательском вводе и создания 2D матрицы - PullRequest
0 голосов
/ 13 июня 2018

Пользователю предлагается ввести строку.

input: 1 2 3; 4 5 6; 7 8 9

output:

1 2 3

4 5 6

7 8 9

Записи в одной строке разделяются однимпространство.Строки разделяются точкой с запятой и пробелом.Мне нужно использовать функцию getchar для ручного анализа строки ввода, чтобы я мог создать эту матрицу и выполнить другие операции с ней.

Даже не уверен, с чего начать.Я думал об использовании цикла, который увеличивается каждый раз, когда точка с запятой читается.Но я действительно не знаю, как использовать getchar!

while((input1 = getchar())!= '\n')
{
    if((input1 > '0') || (input1 < '9')){
        matrixA[row][col] = input1;
        if(input1 == ' '){
        col++;
        matrixA[row][col] = input1;
    }
    if(input1 == ';'){
        matrixA[row][col]=input1;
        row++;
    }

редактировать: этот код печатать (ноль)

1 Ответ

0 голосов
/ 13 июня 2018

После некоторого уточнения: он печатает только первый символ, который вводит пользователь, или первые два, в зависимости от количества вводов до того, как встретится первая точка с запятой.Мой оператор печати находится вне цикла.

char matrixA[100][100];

char matrixB[100][100];
char input1, input2;
int row=0, col=0, num = 0;

printf("Enter matrix A:\n");

while(input1 != '\n'){

    input1 = getchar();

    if((input1 > '0') && (input1 < '9') && (input1 != ' ') && (input1 != ';')){
        //num = (num*10) + (input1 - '0');
        matrixA[row][col] = input1; 
    }  

    if(input1 == ' '){
        col++;
    }
    if (input1 == ';'){
        row++;        
    } 
}
...