C++ std::getline()是否完全清空缓冲区?

C++ std::getline()是否完全清空缓冲区?,c++,C++,std::getline()是完全清空缓冲区,还是输入缓冲区中仍保留换行符?状态如下: 如果找到分隔符,将提取并丢弃该分隔符(即不存储该分隔符,并在其之后开始下一个输入操作) 它应该被丢弃 检查两个句子之间的换行符是否被适当地丢弃 回复评论: (1) istream和getline(istream和is、string和str、char-delim) (2)istream和getline(istream和is、string和str) 从is中提取字符并将其存储到str中,直到 找到分隔符deli

std::getline()是完全清空缓冲区,还是输入缓冲区中仍保留换行符?

状态如下:

如果找到分隔符,将提取并丢弃该分隔符(即不存储该分隔符,并在其之后开始下一个输入操作)

它应该被丢弃

检查两个句子之间的换行符是否被适当地丢弃


回复评论:

(1) istream和getline(istream和is、string和str、char-delim)

(2)istream和getline(istream和is、string和str)

从is中提取字符并将其存储到str中,直到 找到分隔符delim(或换行符, “\n”,用于(2)

是,换行符用作默认分隔符


不,输入缓冲区将不再包含换行符,因为它将被简洁地丢弃。你不需要自己打扫。

试试看。(filll)我觉得我确实理解你说的话,但只是为了让我的理解没有歧义,让我问一下:如果没有找到分隔符,换行符充当分隔符?一旦到达换行符,之前的所有内容都存储在字符串中,但现在输入缓冲区中是否仍有换行符,我需要清理缓冲区以清除它,还是不?