为了学习 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
出来了。
也可以将检查和转换结合起来——例如Boostlexical_cast<int>(your_string)
将尝试从字符串中解析出 int,如果无法将整个字符串转换为 int,则抛出异常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)