📅  最后修改于: 2023-12-03 15:27:17.390000             🧑  作者: Mango
本文将介绍如何在 C++ 语言中判断输入数据是否为整数。
使用 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;
}
使用正则表达式可以更加方便地判断输入数据是否为整数。可以使用 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;
}
通过本文的介绍,我们了解了两种方法来判断输入数据是否为整数,其中方案一使用了类型转换,方便实现,但可能存在一些异常情况;方案二使用了正则表达式,更加准确,但代码量稍微有点大。大家可以根据实际需要选择合适的方法来判断输入数据是否为整数。