我正在编写一个简单的小脚本,我试图不允许人们输入字符串,或者如果他们确实让它再次恢复到函数的开头。这是我的输入代码:
int main()
{
cout << "Input your first number" << endl;
cin >> a;
cout << "Input your second number" << endl;
cin >> b;
}
除了这部分之外的其余代码对正在发生的事情很有效,尽管如果在这里输入字符串它显然不起作用。
任何帮助都将不胜感激。
答案 0 :(得分:1)
您可能会发现这篇文章很有用,
How to check if input is numeric in C++
基本上你可以检查输入,是否是数值。在检查给定输入是否为数字后,您可以在main中添加while循环,以便在输入不是有效数字时要求用户重复。
答案 1 :(得分:0)
每个输入都是一个字符串。如果你想知道输入的字符串是否可以转换为数字,你必须读入一个字符串并尝试自己转换它(例如使用strol)。
另一种方法是检查来自cin的读数是否失败,但我个人不喜欢它,因为cin.fail()涵盖的错误情况多于失败的类型转换。
答案 2 :(得分:0)
有一个库函数可能有帮助,您可以在输入后检查它:
int isdigit(char c);
提示: 你应该包括这样的文件:
# include <ctype.h>
2.如果c在0~9,则返回1;否则返回0。