驗證 C 中的數位輸入
驗證使用者輸入對於任何接受數值的程式都至關重要。在 C 中,檢查輸入是否為數字的一種方法是利用輸入流 cin 的失敗位元功能。
使用失敗位元檢查輸入有效性
當 cin 時遇到無效輸入,它會在輸入流上設定失敗位元。要檢查這種情況,您可以使用以下語法:
int n; cin >> n; if (!cin) // or if (cin.fail()) { // User did not input a number cin.clear(); // Reset failbit }
如果設定了失敗位,則表示輸入不是有效數字。在這種情況下,您應該使用 cin.clear() 重置故障位元以清除錯誤狀態。
使用cin.ignore() 清除錯誤輸入
清除後失敗位,您需要使用cin.ignore() 丟棄流中的無效輸入:
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Skip bad input
此行將有效地讀取並丟棄直到下一個換行符('n')的所有字元清除錯誤的輸入。
處理無效的輸入
清除錯誤的輸入後,您可以提示使用者重新輸入輸入。這可以使用一個循環來完成,該循環一直持續到收到有效輸入:
while (cin.fail()) { // User input was invalid cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Prompt user to re-enter input cout << "Invalid input. Please enter a valid number: "; cin >> n; }
透過利用failbit和cin.ignore()方法,您可以有效地驗證C中的數字輸入,確保您的程式處理有效和無效的使用者輸入都可以優雅地進行。
以上是如何使用失敗位元驗證 C 中的數位輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!