Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用getchar读入用户输入并创建2D矩阵_C_Matrix_Multidimensional Array_User Input_Getchar - Fatal编程技术网

使用getchar读入用户输入并创建2D矩阵

使用getchar读入用户输入并创建2D矩阵,c,matrix,multidimensional-array,user-input,getchar,C,Matrix,Multidimensional Array,User Input,Getchar,系统将提示用户输入字符串 输入:1 2 3;4 5 6; 7 8 9 输出: 1 2 3 4 5 6 7 8 9 同一行上的条目由一个空格分隔。行之间用分号和空格分隔。我需要使用getchar函数手动解析输入行,以便创建此矩阵并使用它执行其他操作 甚至不知道从哪里开始。我在考虑使用一个循环,每次读取分号时循环递增。但是我真的不知道如何使用getchar while((input1 = getchar())!= '\n') { if((input1 > '0') || (inp

系统将提示用户输入字符串

输入:<代码>1 2 3;4 5 6; 7 8 9

输出:

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++;
    }
while((input1=getchar())!='\n')
{
如果((输入1>0')| |(输入1<9')){
矩阵[行][列]=输入1;
如果(输入1=''){
col++;
矩阵[行][列]=输入1;
}
如果(输入1=';'){
矩阵[行][列]=输入1;
行++;
}
编辑:经过进一步细化后,此代码打印(空)

: 它只打印用户输入的第一个字符或前两个字符,具体取决于遇到第一个分号之前输入的数量。我的print语句在循环之外

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++;        
    } 
}
char矩阵[100][100];
char matrixB[100][100];
字符输入1,输入2;
int row=0,col=0,num=0;
printf(“输入矩阵A:\n”);
while(input1!='\n'){
input1=getchar();
如果((input1>'0')&&&(input1<'9')&&(input1!='')&&(input1!=';')){
//num=(num*10)+(input1-'0');
矩阵[行][列]=输入1;
}  
如果(输入1=''){
col++;
}
如果(输入1=';'){
行++;
} 
}

我将从一个更简单的任务开始。创建一个1D数组。使用
getchar
填充它。然后使用
printf
显示它。如果您想读取多个字符,循环可能是一个好主意。请注意,它将返回一个
int
。当您想检查错误和文件结尾时,这一点非常重要(或案例中输入的结尾)。为什么需要使用
getchar()
-这是课堂练习的要求吗?除非你的手被老师绑住,或者你确定所有的数字都是一位数,否则这可能不是一个好的选择。至于从哪里开始:从定义一个矩阵开始-你的变量
matrixA
不是(根据任何合理的术语定义)一个矩阵。如果你不知道怎么做,你需要点击教科书。使用getchar是一项要求,所有输入都假定为高达6位的正数。