Для проверки ввода / вывода bool я попытался запустить эту короткую программу:
#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', и как это предотвратить.
Спасибо.