該程序應檢查輸入的數字是否爲整數。它適用於字符串,但不適用於雙打。cin in while循環無法正常工作(C++)
int test;
cout << "Enter the number:" << endl;
while(true) {
cin >> test;
if (!cin || test < 0) {
cout << "Wrong input, enter the number again:" << endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
你確實是知道的['break'(http://en.cppreference.com/w/cpp/language/break)和['continue']( http://en.cppreference.com/w/cpp/language/continue)聲明,不是嗎? –
代碼工作正常,一切都按照它應該的方式運行,但它沒有做你想做的。要做你想做的事情的唯一方法是讀取一個*字符串*,檢查字符串是否是一個整數格式,然後只將*字符串轉換爲一個整數。這是很多工作,所以除非你被告知你必須這樣做,否則我不會打擾。 – john
不要使用* goto *!作爲@JoachimPileborg提到的 –