python - 检查输入是否为整数

标签 python c++ cin

为了学习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/

相关文章:

c++ - 按位小于或等于

while 循环中的 C++ STD Cin 错误

python - 如何使用排列生成字典的键

python - "print"和 "range"在 Windows 的不同 Python shell 中工作不同(或根本不工作)?

python - Airflow CeleryExecutor - 'int' 对象在 Celery 中没有属性 'startswith'

sscanf() 的 C++ 替代品

c++ - 溢出 int 时 cin 的意外行为

python - Pandas:如何仅转换列中非 None 的值?

c++ - Windows 消息循环

C++ 内存管理和 vector