std :: getline()是否完全清空了缓冲区,还是我们仍然在输入缓冲区中留下换行符?
答案 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))。
是的,换行作为默认分隔符。
不,输入缓冲区中不再有换行符,因为它会被简洁地丢弃。你不需要自己清理。