爲了測試BOOL I/O,我試圖運行這套短節目:的std :: cin.clear()失敗,在一個良好的狀態,以恢復輸入流
#include <iostream>
int main()
{
while(true)
{
bool f;
if (std::cin >> f)
std::cout << f << '\n';
else
{
std::cout << "i/o error\n";
std::cin.clear();
}
}
return 0;
}
這裏是輸出我得到:
g++ -Wall -ansi -pedantic -o boolio boolio.cpp
./boolio
0
0
1
1
2
i/o error
-
i/o error
t
i/o error
i/o error
i/o error
... (infinite loop)
我想知道爲什麼當我輸入't'時,我會得到一個無限循環,以及如何防止它。
謝謝。
工作,謝謝。但我仍不明白爲什麼' - '或'2'不需要它,而't'則需要它。 – 2011-02-10 17:26:42