读书人

gets和getchar一起用的有关问题

发布时间: 2014-01-12 00:03:16 作者: rapoo

gets和getchar一起用的问题
首先是这个,主要目的是输出a和c,b是吸收输完a后的回车
gets和getchar一起用的有关问题
结果和想的一样,回车被吸收了,a和c都能准确捕获字符
gets和getchar一起用的有关问题
接着改成这样
gets和getchar一起用的有关问题
可是第二个getchar不能捕获到字符gets和getchar一起用的有关问题
然后这样,先输字符串,先回车两次,再输入字符,这样才能捕获到,如下
gets和getchar一起用的有关问题

这是怎么回事?用scanf("%c")也是这种情况
[解决办法]
scanf("%c")前面加个空格看看
scanf(" %c")
[解决办法]
1. gets()本身会吸收回车, 所以不需要再跟一个吸收回车的
2. gets()一直就是c语言里臭名昭著各类编程规范严禁使用的函数, 而且在最新的c11标准中已经删除了gets(), 所以不要再使用了.
[解决办法]
get语句把字符串后面的回车键吞掉了,所以c字符是给了b,c变量是\n。可以说,gets()会舍弃最后的回车符!

读书人网 >C语言

热点推荐