c语言程序getchar()函数接受回车问题

程序红线处去掉了getchar();后回车不是应该由下一句的gets函数接收吗为什么函数会直接结束?

因为 scanf 没有接收你输入文件名的 \n,而 gets 是以 \n 为结束的,所以就直接返回了。你也可以这样 scanf("%s\n", xxx),让 scanf 把 \n 接收掉,后面的 gets 就会等待输入了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-05
gets函数遇到回车就结束了啊。。。当然直接返回了
http://baike.baidu.com/view/1457521.htm追问

gets遇到回车结束。
那gets会不会把这个回车赋给str?也就是说str最后得到一个回车

追答

试一下不就知道了啊,在最后加一句
printf("%d\n", *str);如果是10那就是在里面,因为回车的值就是10,否则就是没有

追问

谢谢哈 是0空字符

本回答被提问者采纳
第2个回答  2014-12-05
这里应该加入清健盘缓冲区的语句,以防止读入前面scanf函数留在缓冲区内的回车
相似回答