【发布时间】:2019-04-02 12:17:30
【问题描述】:
我正在模拟一个计算器,想知道如何只接受正输入而不接受其他字符(负整数、字母等)
我尝试过使用 2 个 do while 循环,一个验证正整数,另一个验证字符,但似乎 1 个输入不能有 2 个循环,否则看起来会很奇怪...
do{
if (invalid == true)
{
cout << "Invalid input, please enter a positive number" << endl;
}
cout << "Please enter the first number:" << endl;
cin >> num1;
cin.ignore();
invalid = true;
} while (num1 < 0);
invalid = false;
使用上面的代码,它只验证输入是否为正整数,但是一旦我输入字母等字符,程序就会崩溃。有什么办法可以同时排除?
【问题讨论】:
-
通常在这些情况下,您希望读取
string,而不是像int或double这样的数值,并查看它是否与特定的数字模式匹配。你可能对regex感兴趣。
标签: c++