首页 >后端开发 >C++ >如何在 C 中实现稳健的输入验证循环?

如何在 C 中实现稳健的输入验证循环?

Susan Sarandon
Susan Sarandon原创
2024-12-14 00:31:17237浏览

How to Implement Robust Input Validation Loops in C  ?

使用 cin - C 进行良好的输入验证循环

输入验证

使用输入时对于用户来说,验证输入对于确保数据完整性和防止错误至关重要。一种有效的方法是使用循环重复提示用户,直到提供有效的输入。

建议的循环

问题提出了一个用于输入验证的循环:

int taxableIncome;
int error;

// input validation loop
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);

常用方法

虽然循环有效,有更常见且可以说更好的方法来进行输入验证。

异常处理

异常处理提供了一种更直接的方法来处理输入错误。使用 istringstream 和 try-catch 块,我们可以验证输入并处理错误,而无需依赖错误代码。例如:

int taxableIncome;
string input;

while (true)
{
    cout << "Please enter in your taxable income: ";
    getline(cin, input);
    istringstream iss(input);
    if (!(iss >> taxableIncome))
    {
        cout << "Please enter a valid integer" << endl;
        continue;
    }
    break;
}

带验证的无限循环

另一种方法是使用无限循环,不断验证输入并提示用户根据需要进行更正。

int taxableIncome;

while (true)
{
    cout << "Please enter in your taxable income: ";
    if (cin >> taxableIncome)
    {
        break;
    }
    else
    {
        cout << "Please enter a valid integer" << endl;
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
    }
}

选择方法

最佳方法取决于应用程序的具体要求。异常处理是一种更现代、更健壮的方法,而无限循环提供了一种简单、直接的方式来处理输入验证。

以上是如何在 C 中实现稳健的输入验证循环?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn