2017-06-30 4 views
0

私はまだ種類の新しいC++(現在のコースを取って)にしていると私は私の最終的なプロジェクトを仕上げに近いと思います。しかし、私のプログラム内のそれのようなコードやその他のこれらの行は、それが2回入力された後に私のプログラムは、入力のみを受け入れるようになります。私はそれを再タイピングし、まだ役に立たなかった2時間を過ごした。なぜこれらのコード行は、私のプログラムは私の入力を受け付けさせない(各エントリの後Enterキーを押して)?

cout <<endl<< "Enter balance:"<<endl; 
cin >> balance; 
while(!(cin>>balance)) 
{ 
    cin.clear(); 
    cin.ignore(999,'\n'); 
    cout<<endl<<"Invalid data type! Number expected. Please enter balance again:"<<endl; 
} 
+0

あなたは二度 'balance'を求めているので?ループ条件にない 'cin >> balance;を取り除く。 – NathanOliver

+1

「シン」から二度読み込むのですか?ループに入るあなたの最初の時間は、上記の行でそうした後に右を標準入力から読み込みを呼んでいます。 – Peri461

答えて

0

stdinから読み取るための二重呼び出しを取り除きます。

cout << endl << "Enter balance:" << endl; 
//cin >> balance; 
while(!(cin >> balance)) { //This reads in, and continues while read was NOT successful 
    cin.clear(); 
    cin.ignore(999,'\n'); 
    cout << endl << "Invalid data type! Number expected. Please enter balance again:" << endl; 
} 
関連する問題