getline(cin, str)是否接收回车,还是直接舍弃,还是进入了缓冲区,救救孩子。
先说结论:根据实测,结束符被舍弃。
getline(cin,str,)第三个参数可以设置结束符,结束符会被舍弃。
如下测试代码
getline(cin,str,'v');
getline(cin,str2);
当输入数据为
abc
abc
avb
时,重新输出。
str内容为
abc
abc
a
str2内容为 b
从此例子中可以发现。输入结束符之前的所有内容都被存入str,包括回车换行,而最后输入的v(我们设置的结束符)则被舍弃,不影响继续输入其他内容。
由此可以推测,不指定第三个参数,默认时回车为结束符,回车被舍弃,不存入缓冲区。
谢谢,老哥