今天想写一个简单的ascii码转换程序,确在输入这一块出现了问题。
在上面的图片中,在功能选择那我敲了个2然后回车就直接跳过了代码里switch里面case 2的输入,打印出了回车的ascii码,有大神解答一下吗!?
标签:
今天想写一个简单的ascii码转换程序,确在输入这一块出现了问题。
在上面的图片中,在功能选择那我敲了个2然后回车就直接跳过了代码里switch里面case 2的输入,打印出了回车的ascii码,有大神解答一下吗!?
估计是Enter=0xd,0xa ,scanf %d 时 检查到 '2', 0xd,就开始进入switch,再次 scanf %c 时,就收到0xa了
按楼上的方法,scanf前先清空
输入流是行缓冲的,可以试下在读取字符之前用fflush(stdin)清空输入缓冲