あります。このループから出る値は1と2だけです。 1.2または4.5では、暗黙的に整数に変換されます(1および4値)。私は文字列の値を入れて、ループ無限の作業と私はコンソールを閉じて、最初からデバッグする必要があります。入力値をdoubleとstringの値から保護する正しいループを書くにはどうすればいいですか?確認入力値は、私は、whileループ(以下)入力値をチェックすることを作る整数型
int triangle;
do{
cout << "Put the number (1 or 2): ";
cin >> triangle;
} while (triangle > 2 || triangle < 1 || !cin);
ループ条件は、 '' CIN &&(三角形<1つの||三角形> 2)であるべきです。 –
[このスレッド](http://stackoverflow.com/questions/10178830/input-validation-for-numeric-input)で受け入れられた答えはあなたが探しているものです。浮動小数点数を読み取って小数部分をチェックするためにそれを微調整することができます。 – jrok
[fmod](http://en.cppreference.com/w/cpp/numeric/math/modf)を参照してください。 – jrok