scanf()在多行输入中暂停循环

scanf()在多行输入中暂停循环,c,input,char,scanf,getchar,C,Input,Char,Scanf,Getchar,使用scanf()时,我的输入有问题。我试图将一组单独的字符输入到一个2维的字符数组中。一切正常,直到最后一行(只要我最后一次进入内部for循环),程序停止,并等待我按enter键,然后它再次按预期工作并完成。如何在不按enter键的情况下使程序继续?注意:此代码只是包含可读性问题的程序的提取 输入:前两个整数是以下矩阵的行和列,从包含无空格字符的换行开始,如代码中的注释所示 #include <stdio.h> int main(void) { char matrix[100][

使用scanf()时,我的输入有问题。我试图将一组单独的字符输入到一个2维的字符数组中。一切正常,直到最后一行(只要我最后一次进入内部for循环),程序停止,并等待我按enter键,然后它再次按预期工作并完成。如何在不按enter键的情况下使程序继续?注意:此代码只是包含可读性问题的程序的提取

输入:前两个整数是以下矩阵的行和列,从包含无空格字符的换行开始,如代码中的注释所示

#include <stdio.h>

int main(void)
{
char matrix[100][100];
int nrows;  
int ncols;  

scanf("%d %d", &nrows, &ncols);

for (int i = 0; i<nrows; i++) {
    for (int j = 0; j<ncols; j++) {
        scanf(" %c", &matrix[i][j]);
        printf("[%d][%d]\n", i, j);     //to check pause
    }
}
return 0;
}

//10 20
//%%%&&%%%%%&&&%&%&&&%
//%%%&&%%%%%&&&%&%&&&%
//%%%&&%%%%%&&&%&%&&&%
//%%%&&%%%%%&&&%&%&&&%
//%%%&&%%%%%&&&%&%&&&%
//%%%&&%%%%%&&&%&%&&&%
//%%%&&%%%%%&&&%&%&&&%
//%%%&&%%%%%&&&%&%&&&%
//%%%&&%%%%%&&&%&%&&&%
//%%%&&%%%%%&&&%&%&&&%
#包括
内部主(空)
{
字符矩阵[100][100];
int nrows;
int ncols;
scanf(“%d%d”、&nrows和&ncols);

对于(int i=0;ii如果不必按“回车”代码如何知道前一个条目的输入已完成?在最后一个条目中,代码与其他条目一样等待换行符。无法复制,输入最后一行的行为与输入其他条目一样。实际上,代码根本不关心换行符/回车符。只需输入一个字符即可输入非空白字符“enter”在结尾处,或每个字符都带有“enter”字样。请提供一个示例输入,按一个键一个键地按,并解释输出以及“强制”您在最后一行使用“enter”的原因。
scanf
格式
%c”
将跳过空白,因此您不希望任何空白字符作为有效输入。您是否考虑过使用
scanf(“%s”,矩阵[i]);
并删除
j
循环?