检查“cin”是否为字符串

时间:2013-01-18 04:09:12

标签: c++ string input int cin

我正在编写一个简单的小脚本,我试图不允许人们输入字符串,或者如果他们确实让它再次恢复到函数的开头。这是我的输入代码:

int main()
{
    cout << "Input your first number" << endl;
    cin >> a;
    cout << "Input your second number" << endl;
    cin >> b;
}

除了这部分之外的其余代码对正在发生的事情很有效,尽管如果在这里输入字符串它显然不起作用。

任何帮助都将不胜感激。

3 个答案:

答案 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。