为了学习C++,我正在翻译一个用Python写的程序。
这是我写的
n = 0
while n < 2:
try:
n = int(raw_input('Please insert an integer bigger than 1: '))
except ValueError:
print 'ERROR!'
为了从用户那里得到一个大于 1 的整数。
这是我目前用 C++ 写的:
int n = 0;
while (n < 2) {
cout << "Please insert an integer bigger than 1: ";
cin >> n;
}
我看了一下 try-catch,它看起来很简单。我关心的是如何检查输入是一个整数。我阅读了有关 cin.fail() 的信息,但我找不到任何官方文档,也没有真正了解它是如何工作的。
那么,如何检查输入是否为整数?
更一般地说,我如何检查输入是否为“anything”?
最佳答案
对于这种情况,您可能希望将输入读取为字符串,然后检查该字符串(例如,“仅包含数字,最多 N 位数字”)。当且仅当它通过检查时,解析 int
也可以将检查和转换结合起来——例如,Boost lexical_cast<int>(your_string)
将尝试从字符串中解析出一个 int,如果不能将整个字符串转换为 int,则抛出异常。
关于python - 检查输入是否为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35299101/