求助帮帮我检查一下这个C语言程序存在什么问题
原题目在最后面图片,我自己写的程序是1、2、3图片,运行结果是4图片。按我的设想,如果输入Y,程序是不会终止的,但实际确实运行到第二次程序自己终止了。这是怎么回事呀。求大...
原题目在最后面图片,我自己写的程序是1、2、3图片,运行结果是4图片。按我的设想,如果输入Y,程序是不会终止的,但实际确实运行到第二次程序自己终止了。这是怎么回事呀。求大大解惑。
展开
1个回答
展开全部
我只看了主函数,主函数里只有一个输入语句,getchar(),用于录入字符判断是否继续游戏。你输入了Y字母,又按了回车,两个字符都在缓冲区里面,(getchar是可以录入回车符的,scanf不能录入回车符),第一次游戏,getchar录入了Y,游戏继续,缓冲区还剩一个回车符,第二次游戏再次从缓冲区提取字符,就录入了回车符,所以就程序结束了
追问
谢谢大佬指点,就是这个问题,作为初学者在这种细节方面我总是处理不好,哈哈!
scanf好像也能读入回车?
我把getchar()换成scanf("%c", &ch)后还是到第二次会终止程序。
最后把程序成scanf("%c", &ch);getchar();问题解决了。
真是没人点拨,一个弯很难转过来,再次感谢大大。
追答
对的,scanf("%c");可以录入回车符,我记错了,是scanf("%s");不能录入回车符
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询