检查输入中的换行符

Jor*_*tro 2 c newline matrix

码:

printf("Enter your data (5x10) of characters: \n");
for (i = 0; i < SIZE1; i++)
for (j = 0; j < SIZE2; j++)
    scanf("%c", &matrix2[i][j]);
compress(matrix2);
break;
Run Code Online (Sandbox Code Playgroud)

我的代码假设采用5 x 10char矩阵.但是目前我的换行符正在输入到矩阵中,我如何实际检查换行符,并防止它进入matrix2[i][j]

它总共读取了4个换行符.输入:

aaabbbcccd (press enter)
ababababab (press enter)
bcdbcdbcdb (press enter)
ababababab (press enter)
abbbcccdda
Run Code Online (Sandbox Code Playgroud)

Nat*_*pel 6

您可以在%c说明符之前添加空格,如下所示

scanf(" %c", &matrix2[i][j]);
Run Code Online (Sandbox Code Playgroud)

格式字符串中的空白区域告诉scanf()您跳过任何前导空格或换行符,从而消耗了使用%c转换说明符键入的下一个字符.

你的情绪正在发生,因为当你(press enter),下一个scanf()电话正在消耗\n留下的这个换行符,因此使你的声明失败.