#mac電腦寫程式的問題
#getchar()
第二個getchar()永遠無法輸入不知道為什麼有什麼解決方法嗎
该问题的原因是在输入第一个变量后,按下了回车键。回车键会被getchar()
函数读取为一个换行符,并存储在输入缓冲区中。当执行到getchar()
函数获取第二个变量时,它会读取输入缓冲区中的换行符,而不是用户输入的实际字符。
为了解决这个问题,你需要在获取第一个变量后,再调用一次getchar()
函数来清除输入缓冲区中的换行符。这样,在获取第二个变量时,getchar()
函数才能读取到用户输入的实际字符。下面是修改后的代码片段:
#include <stdio.h>
int main() {
char firstVariable;
char secondVariable;
printf("请输入第一个变量: ");
firstVariable = getchar();
getchar(); // 用于清除输入缓冲区中的换行符
printf("请输入第二个变量: ");
getchar(); // 再次调用getchar()函数,清除输入缓冲区中的换行符
secondVariable = getchar();
getchar(); // 用于清除输入缓冲区中的换行符
printf("第一个变量: %c\n", firstVariable);
printf("第二个变量: %c\n", secondVariable);
return 0;
}
参考屏幕截图:
请输入第一个变量: A
请输入第二个变量: B
第一个变量: A
第二个变量: B
这样修改后,输入第一个变量后再输入第二个变量,就能正确获取到两个变量的值了。如果你遇到其他问题,请提供更多细节,谢谢!
可能是getchar吃了你的回车符
你可以在getchar前面加上
fflush(stdin);
或者加上一个空的 getchar();
在第一次和第二次之间插入一句:getchar(); 如: ch = getchar(); getchar(); ch2 = getuchar();