首页 新闻 搜索 专区 学院

getline(cin, str)是否接收回车,还是直接舍弃

0
[待解决问题]

getline(cin, str)是否接收回车,还是直接舍弃,还是进入了缓冲区,救救孩子。

银发制御的主页 银发制御 | 菜鸟二级 | 园豆:202
提问于:2021-05-09 15:17
< >
分享
所有回答(1)
1
先说结论:根据实测,结束符被舍弃。

getline(cin,str,)第三个参数可以设置结束符,结束符会被舍弃。
如下测试代码

getline(cin,str,'v');
getline(cin,str2);

当输入数据为

abc
abc
avb

时,重新输出。
str内容为

abc
abc
a

str2内容为 b

从此例子中可以发现。输入结束符之前的所有内容都被存入str,包括回车换行,而最后输入的v(我们设置的结束符)则被舍弃,不影响继续输入其他内容。

由此可以推测,不指定第三个参数,默认时回车为结束符,回车被舍弃,不存入缓冲区。

繁星为梦闪烁 | 园豆:204 (菜鸟二级) | 2021-05-09 18:54

谢谢,老哥

支持(0) 反对(0) 银发制御 | 园豆:202 (菜鸟二级) | 2021-05-09 22:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册