C 中 cin 的良好輸入驗證循環
作為 C 初學者,了解有效的輸入驗證技術至關重要。當使用標準輸入流 cin 時,這一點尤其重要。在本文中,我們將探索一種常見的基於循環的方法來驗證使用者輸入,並重點介紹一種通常被認為更乾淨、更簡潔的替代方法。
原始循環:
您建立的輸入驗證循環使用do-while 循環來重複提示使用者輸入並檢查錯誤:
int taxableIncome; int error; do { error = 0; cout << "Please enter in your taxable income: "; cin >> taxableIncome; if (cin.fail()) { cout << "Please enter a valid integer" << endl; error = 1; cin.clear(); cin.ignore(80, '\n'); } } while (error == 1);
替代方法:
另一種方法涉及使用for循環並檢查cin 輸入流中的錯誤循環:
int taxableIncome; for (;;) { cout << "Please enter in your taxable income: "; if (cin >> taxableIncome) { break; // Valid input received } else { cout << "Please enter a valid integer" << endl; cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); } }
比較:
兩種方法都實現了輸入驗證的目標,但替代方法具有一定的優勢:
結論:
雖然原始循環是驗證輸入的函數式方法,但許多 C程式設計師更喜歡替代方法,因為它的簡單性和靈活性。透過刪除不必要的變數並使用標準庫函數,它為輸入驗證提供了更精簡、更有效率的解決方案。
以上是如何在 C 中使用'cin”實現可靠的輸入驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!