什么样的流可以导致功能永远运行?
这样的流存在吗?
答案 0 :(得分:3)
标准输入。
答案 1 :(得分:2)
ifstream的( “的/ dev /随机”) ifstream的( “的/ dev /零”)
答案 2 :(得分:2)
如果流遇到错误,它将停止返回/接受信息。如果你的函数正在等待流出来的东西,它将永远旋转。
使用if ( cin )
(将流转换为bool
)来测试错误情况。或者,在程序或流初始化时调用cin.exceptions( ios::badbit )
,以便错误条件抛出异常而不是静静地旋转。
如果程序能够从这样的错误中恢复,请调用cin.clear()
(或任何流),然后调用cin.ignore()
,以删除有问题的输入。