2016-07-02 5 views
0

ユーザーから入力された値がStringまたはIntであることを確認しようとしていますが、ユーザーが任意の文字列を入力したときループしています。int taxableIncome値1実行している場合はどのように? cin >> taxableIncomeはあなたが検出しているどの(失敗したら 私は、ユーザーからの値をチェックすることができ、その内、とにかく私に言うことはint型や文字列で初心者レベルのプログラマ... よ.... ここでは、コードプログラムがループ内で値がintまたはstringであるとチェックされています

int taxableIncome; 

for (;;) { 
    cout << "Please enter in your taxable income: "; 
    if (cin >> taxableIncome) { 
     cout << "Your income: " << taxableIncome; 
     break; 
    } else { 
     cout << "Please enter a valid integer" << endl; 
    } 
} 
+0

"delete taxableIncome" - これは完全に偽です。 "taxableIncome"は 'new'で割り当てられませんでした。これはポインタでもありません。それはコンパイルさえしますか? –

+1

「ウルの収入」 - 「あなたの」綴りに悩まされていない場合でも、私はもうあなたのコードを見るように気にすることはできません。 –

+0

ああ、プログラムを実行しようとした最後の試みです.... .iは今それを削除しました...ありがとう –

答えて

3

です)cinからの読み取りは、ストリームに既にbadビットでフラグが立てられているため、直接失敗します。あなたはそのビットをクリアし、残りのラインを集めて、やり直してください。

int taxableIncome; 

for (;;) { 
    cout << "Please enter in your taxable income: "; 
    if (cin >> taxableIncome) { 
     cout << "Your income: " << taxableIncome; 
     break; 
    } else { 
     cout << "Please enter a valid integer" << endl; 
     cin.clear(); 
     cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); 
    } 
} 
+0

私は専門用語の使用が好きです* munch *。 + 1 –

関連する問題