📜  知道输入数据是否为整数 - C++ (1)

📅  最后修改于: 2023-12-03 15:27:17.390000             🧑  作者: Mango

知道输入数据是否为整数 - C++

本文将介绍如何在 C++ 语言中判断输入数据是否为整数。

1. 方案一:利用类型转换

使用 std::istringstream 可以将字符串转换为各种类型的变量,比如整型、浮点型等。因此,可以将输入数据转换为整型,如果转换成功说明输入数据是整数,否则说明输入数据不是整数。

#include <iostream>
#include <string>
#include <sstream>

bool isInteger(const std::string& input) {
    std::istringstream ss(input);
    int value;
    ss >> value;
    return !ss.fail() && ss.eof();
}

int main() {
    std::string input;
    std::cout << "Please input an integer: ";
    std::cin >> input;
    if (isInteger(input)) {
        std::cout << "The input is an integer." << std::endl;
    }
    else {
        std::cout << "The input is not an integer." << std::endl;
    }
    return 0;
}
2. 方案二:利用正则表达式

使用正则表达式可以更加方便地判断输入数据是否为整数。可以使用 std::regex 来创建一个匹配整数的正则表达式,然后使用 std::regex_match 来匹配输入数据。

#include <iostream>
#include <string>
#include <regex>

bool isInteger(const std::string& input) {
    static const std::regex integer_regex("^[+-]?\\d+$");
    return std::regex_match(input, integer_regex);
}

int main() {
    std::string input;
    std::cout << "Please input an integer: ";
    std::cin >> input;
    if (isInteger(input)) {
        std::cout << "The input is an integer." << std::endl;
    }
    else {
        std::cout << "The input is not an integer." << std::endl;
    }
    return 0;
}
总结

通过本文的介绍,我们了解了两种方法来判断输入数据是否为整数,其中方案一使用了类型转换,方便实现,但可能存在一些异常情况;方案二使用了正则表达式,更加准确,但代码量稍微有点大。大家可以根据实际需要选择合适的方法来判断输入数据是否为整数。