第二次扫描无效

Pee*_*ush 2 c

我遇到这个c语言代码有问题:

 char st[2];

 printf("enter first value:");
 scanf("%c", &st[0]);

 printf("enter second value:");
 scanf("%c", &st[1]);
Run Code Online (Sandbox Code Playgroud)

所以我的计算机没有要求我输入第二个值,我的意思是它只打印第一个printf语句然后我输入一个字符然后它只打印第二个printf语句和程序结束而不进行第二个输入.

请帮忙.这段代码出了什么问题?

-提前致谢.

lep*_*pie 9

好吧,它做到了.由ENTER键产生的字符已经存在于缓冲区中.


小智 9

在第二个之前使用fflush(stdin);函数scanf();。它将刷新第一次 scanf(); 之后生成的 ENTER 键。实际上,您的第二个 scanf() 将 ENTER 作为其输入,并且由于 scanf 在收到 ENTER 后终止,因此它不会在您身边采取任何其他操作。