我試圖打印一個錯誤消息,如果用戶不輸入任何東西到輸入提示,並且他們輸入的是零或更少。檢查用戶整數輸入與cin給出無限循環
void checkScoreInputed(int* qaltScores, int i){
while(true){
// cin.clear(); here?
if ((cin >> qaltScores[i]) && (qaltScores > 0)){
// also tried placing cin.clear() here.
break;} else // else is optional
cout << "Please supply a positive number for the score: ";
}
}
我試過把cin.ignore()和cin.clear()之前和if語句後,但用戶進入非整數值後我仍然得到的cout << "Please supply...."
一個無限循環,就像一個角色。我怎樣才能解決這個問題?
事情是,我不知道,我應該把明確的(),如果需要的話。 – LazerSharks 2013-03-02 22:47:26
您需要在輸入狀態不良後再調用它們。在你的代碼中,這在輸出中是最符合邏輯的。 – chris 2013-03-02 22:49:29
@chris感謝克里斯,你的評論,這應該是一個答案,幫助並使其工作! – LazerSharks 2013-03-02 22:50:51