告诉用户只允许整数

Telling the user that only whole numbers are allowed

本文关键字:整数 许整数 用户      更新时间:2023-10-16

我正在研究一个项目,用户需要输入整数。但是,如果用户键入小数号,我必须提醒用户只允许整数。我如何将其输入C 。

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

std::string line;
char *endptr;
long n;
do {
    std::cout << "Enter integer >= 0n";
    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