在C中重复使用getchar()时出现的问题

在C中重复使用getchar()时出现的问题,c,getchar,C,Getchar,我的代码: #include "stdio.h" main() { char a,b; a=getchar(); b=getchar(); putchar(a); putchar('\n'); putchar(b); } getchar要求用户输入一个字符,然后按enter键将其分配给变量。我希望程序允许我输入字符两次,每次按enter键结束。但我只能输入一个字符串,程序将自动读取前两个字符并将它们分配给每个变量。 有什么问题吗 getchar

我的代码:

#include "stdio.h"
main() {
    char a,b;
    a=getchar();
    b=getchar();

    putchar(a);
    putchar('\n');
    putchar(b);
}
getchar要求用户输入一个字符,然后按enter键将其分配给变量。我希望程序允许我输入字符两次,每次按enter键结束。但我只能输入一个字符串,程序将自动读取前两个字符并将它们分配给每个变量。 有什么问题吗

getchar要求用户输入一个字符,然后按enter键将其分配给变量

否。getchar接受单个字符作为输入。甚至enter\n也被视为getchar的单个字符。 因此,当您输入一个字符时,它将是第一个getchar的输入,而输入'\n'将是第二个getchar的输入

例:


当您按a键时,它将被第一个getchar读取,之后,如果您按enter“\n”,它将被视为第二个getchar的输入

问题是您键入character+enter。第一个getchar读取字符,第二个读取换行符。顺便说一句,这里有许多类似的问题。每次按ENTER键时,您都会输入一个字符\n。因此,您实际上一次输入2个字符。旁白:includestdio.h main{char a,b;…应该是include int mainvoid{int a,b;…按下Enter键时,getchar从输入缓冲区读取。因此,如果您键入a,然后键入b,然后键入Enter,输出将是a和b。