如何在用户输入字母而不是数字时循环返回

how to loop back if a user enters a letter instead of a number c++

本文关键字:数字 返回 循环 用户 输入      更新时间:2023-10-16

我的程序识别出用户输入了一个字母而不是一个数字,但它不要求用户在此之后输入。我需要能够提示用户输入另一个值,这是一个数字,并创建一个循环或其他东西,将检查值,每次确保它不是一个字母/s。

这是我的代码中检查无效字符的部分:

while (!cin.good())
{
cout << "Error! I only accept numbers! Enter in a number." << endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max());
}

尽管这可能很简单…这就回答了我的问题:http://www.dreamincode.net/forums/topic/186890-c-excluding-letters-on-user-input/

千万不要这样做:

int j;
cin >> j;

因为what只读取数字,而你需要读取数字以外的东西,这样你就可以在输入数字时报告错误