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

时间:2016-10-23 06:39:51

标签: c++

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

1 个答案:

答案 0 :(得分:4)

正如the page所述:

  

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

它应该被丢弃。

签出this example.两句话之间的换行符被适当丢弃。

回答评论:

  

(1)istream& getline(istream& is,string& str,char delim);

     

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

     

从is中提取字符并将它们存储到str中,直到   找到分隔字符分隔符(或换行符,   '\ n',for(2))。

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

不,输入缓冲区中不再有换行符,因为它会被简洁地丢弃。你不需要自己清理。

相关问题