Więc jestem ciekawy, dlaczego tak się dzieje.C++ Ocena Boolean
int main()
{
bool answer = true;
while(answer)
{
cout << "\nInput?\n";
cin >> answer;
}
return 0;
}
oczekiwanego zachowania: 0 - zakończenie programu 1 - Polecenia ponownie Każdy niezerowy całkowitą inną niż 1 - Polecenia ponownie
Niektóre procesy: 0 - Jak oczekiwano, 1 - Zgodnie z oczekiwaniami, Każdy niezerowy całkowitą inną niż 1 - nieskończonej pętli
Z http://www.learncpp.com/cpp-tutorial/26-boolean-values/
One additional note: when converting integers to booleans,
the integer zero resolves to boolean false,
whereas non-zero integers all resolve to true.
Dlaczego program przechodzi w nieskończoną pętlę?
+1 za dobrze zadane pytanie.Boolean jest czerwonym śledziem; prawdziwy problem związany jest ze sposobem działania strumienia wejściowego. Wypróbuj to samo z int, a następnie wpisz literę i zobacz, co się dzieje ;-) – Cameron
Może się mylę, ale kiedy weźmiesz wejściową linię poleceń ... nie stanie się to ciągiem znaków, więc w rzeczywistości konwersja między łańcuchem a boolowem? Co może zepsuć ... –
Cameron ma dobry punkt: postać może zostać przekonwertowana na liczbę całkowitą. Na przykład "A" == 65', ale to samo się dzieje. – chris