cin.ignore()

来源:互联网 发布:淘宝店铺买卖骗局 编辑:程序博客网 时间:2024/06/05 02:40

一段C++程序:

如果不加cin.ignore();这行,s2将不会被输入。原因是缓冲区每次结尾的时候还有/n,而getline()一开始读的时候认为已经结束,就返回空行。

原型:is.ignore(size, delim)

读并忽略至多 size 个字符,直到遇到 delim,但不包括 delim。默认情况下,size 是 1 而 delim 是文件结束符。

所以要想正常输入一行到s2,必须加入cin.ignore();,表示忽略了/n。