申し訳ありませんが、ここではnoobish質問ですが、私はC++を学んでいます。この問題を扱う標準的な方法を探しています。私はVS2005を使用しています。あなたがプログラムは、あなたが再び何も入力できるようにすることは決してありません整数以外のものを入力した場合入力ストリームに残っている余分な文字に対処するにはどうすればよいですか?
#include <iostream>
using namespace std;
int main()
{
while (true)
{
cout << "enter anything but an integer and watch me loop." << endl;
int i;
cin >> i;
}
return 0;
}
:
は、プログラムを考えます。さて、これは、フォーマットが失敗した後にストリームに入力が残っていることに気づきました。したがって、それぞれの呼び出しは< <です。次の終了行まで読み込んでいます(私は思う)。どうやってストリームをクリアしたり、この問題に取り組んでいますか?それはかなり一般的でなければならない。
あなたは本当に私を文字列にして変換することができました。 – NomeN
ええ、私は、C++の不正な入力を防ぐ標準的な方法を探していました。これはそうだ。 –
先に進み、答えを受け入れてください!とdownvotesを削除し、答えは実際には間違っていない(もう;-))。しかし、このコードは醜いですが、より良く、より専門的に機能します。良い発見! – NomeN