Stream让函数永远运行

时间:2010-08-30 10:57:38

标签: c++ streaming infinite-loop infinite

什么样的流可以导致功能永远运行?

这样的流存在吗?

3 个答案:

答案 0 :(得分:3)

标准输入。

答案 1 :(得分:2)

ifstream的( “的/ dev /随机”) ifstream的( “的/ dev /零”)

答案 2 :(得分:2)

如果流遇到错误,它将停止返回/接受信息。如果你的函数正在等待流出来的东西,它将永远旋转。

使用if ( cin )(将流转换为bool)来测试错误情况。或者,在程序或流初始化时调用cin.exceptions( ios::badbit ),以便错误条件抛出异常而不是静静地旋转。

如果程序能够从这样的错误中恢复,请调用cin.clear()(或任何流),然后调用cin.ignore(),以删除有问题的输入。