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

Does std::getline() empty the buffer completely?

本文关键字:清空 缓冲区 是否 getline std      更新时间:2023-10-16

std::getline()是否完全清空缓冲区,或者我们仍然在输入缓冲区中保留换行符?

如页面所示:

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

它应该被丢弃。

看看这个例子。两个句子之间的换行符被适当地丢弃。


回复评论:

(1) istream&getline (istream&是,string&

(2) istream&getline (istream&是,string&str);

从is中提取字符并将其存储到str中,直到找到分隔字符delim(或换行字符,'n', for (2)).

是的,换行符作为默认的分隔符。

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