2010-08-30 42 views
-1

什么样的流可以导致函数永远运行?流使函数永久运行

这样的流是否存在?

+9

这个问题完全没有任何细节。目前的形式无法回答。 – Omnifarious 2010-08-30 10:59:41

+0

听起来像面试问题给我。 – xtofl 2010-08-30 11:00:25

+0

为什么你需要一个流?把'for(;;);'放在函数的最后,这会让它永远运行。 – 2010-08-30 11:08:56

回答

2

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

2

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

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

呼叫cin.clear()(或任何流),随后cin.ignore()如,删除违规输入,如果程序是能够从这种错误中恢复。

+0

不,不......不,不......那个答案太严重了。问题是“什么样的流”,而不是什么流状态。无论如何,我的+1 ;-) – 2010-08-30 12:24:34