注册 登录
编程论坛 C语言论坛

再输入一串字符串的时候 getchar()是怎么吃掉'\n'的

WAN_N 发布于 2020-08-24 16:34, 1367 次点击
按回车后把字符串送到键盘缓冲区 ,一般getchar()不是从头开始读取吗   怎么直接读取'\n'了?????
2 回复
#2
lin51616782020-08-24 17:04
问题不成立 回答无从谈起
输入123\n
getchar 得到的就是'1' 不是\n
#3
纯蓝之刃2020-08-24 18:39
你按回车把字符串送到键盘缓冲区,此时上一次进入缓存的'\n'还在缓存区,此时getchar()是将上一次读取后剩在缓存区的回车读取丢弃掉。然后使用scanf将数据读取出来,这次进入的回车还留存在缓存区中,等待下一次使用getchar将回车丢掉。
1