首頁  >  文章  >  後端開發  >  如何使用失敗位元驗證 C 中的數位輸入?

如何使用失敗位元驗證 C 中的數位輸入?

DDD
DDD原創
2024-11-15 11:50:02839瀏覽

How to Validate Numeric Input in C   Using the failbit?

驗證 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn