0
ユーザーから整数を取得しようとしています。私はcin.ignoreを使用して、入力がintであることを確認しています。しかし、intでなければ、プログラムは無限ループに入ります。入力を受け取り、C++でint型かどうかを調べた後に無限ループが発生する
int steps = 0;
while (steps<2 || steps>100)
{
char tmp[1000];
cout << "Zadejte pocet cyklu: ";
cin >> steps;
cin.ignore(numeric_limits<int>::max(), '\n');
if (!cin || cin.gcount() != 1)
{
cin.getline(tmp,1000);
steps = 0;
}
}
100より大きい値または2より小さい値を入力すると、無限ループにつながる可能性がある場所では、ステップ変数を増減させていないようです。 – lfxgroove
翻訳:「ステップ数を入力してください」 – Phonon
ああ、しなかった知っている:Pありがとう! – lfxgroove