第一个detchar执行后,为什么第二个getchar还没输入任何东西就执行其他语句?
问题描述:
代码如下:该代码用于根据星期首字母确认星期几,当我输入第一个getchar执行 case :t 时需输入第二个getchar,但我还没输入,就直接执行我下方的case语句,请问这是为什么?
答
getchar();//吸收掉一个字符后面的回车
ch2 = getchar();
答
原来printf后面的回车也会有影响。。。多谢大佬!!
Ps:昨天的问题也是你帮忙解决的,太感动,CSDN账号刚注册,这里面我没金币,没法重谢。。都不好意思了哈哈
答
不用客气,能帮到你就好。还有纠正一点,这个回车并不是printf里面的回车,是第一个getchar()输入的回车,你可以试下把printf里面的回车去掉试试。
答
我刚刚是把printf里面的回车给去掉就好了;
另外我第一个getchar回车后不应该立马就被第一个getchar给吸收掉吗?还是说仍然在缓冲区内
答
getchar()只吸收一个字符,回车没有被第一个getchar给吸收掉,还在缓冲区
答
至于你把printf里面的回车给去掉就好了,这个我倒是没遇到过,我之前也测试过printf,加不加\n,不影响结果
答
哦,好,那我在多试几遍,谢谢哈~