告诉用户只允许整数

问题描述 投票:-1回答:1

我正在开发一个用户需要输入整数的项目。但是,如果用户键入十进制数字,我必须提醒用户只允许整数。如何在C ++中输入。

c++ cin cout
1个回答
0
投票

使用std::getline函数读入整行。然后使用C标准库strtol函数来确保用户输入有效的整数。如果存在无效字符,它会将errno设置为非零值以指示溢出,并将*endptr设置为无效字符的第一个实例。如果设置了这些指标中的任何一个,我们重新运行do循环,使用户重新输入数字,直到数据有效

std::string line;
char *endptr;
long n;

do {
    std::cout << "Enter integer >= 0\n";
    std::getline(std::cin, line);

    n = strtol(line.c_str(), &endptr, 10);
} while ((errno != 0 && n == 0) || endptr == line.c_str() || *endptr != '\n' || n < 0);

// at this point, n is valid
© www.soinside.com 2019 - 2024. All rights reserved.