告诉用户只允许整数
Telling the user that only whole numbers are allowed
我正在研究一个项目,用户需要输入整数。但是,如果用户键入小数号,我必须提醒用户只允许整数。我如何将其输入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
相关文章:
- 如何反转整数参数包
- enum是C++中的宏变量还是整数变量
- 努力将整数转换为链表。不知道我在这里做错了什么
- 整数不会重复超过随机数
- 在C++中手动调整数组大小
- 检查输入是否不是整数或数字
- C++使用整数的压缩数组初始化对象
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 通过套接字[TCP]传输数据 如何在C / C ++中打包多个整数并使用send() recv()传输数据
- 如何只允许用户输入正整数
- 如何在c++中从文本文件中逐行读取整数
- C++ 构造函数参数:字符串、整数、整数、整数
- 根据全局整数定义整数
- 如何打印包含整数和整数集的std::映射
- 什么是快速整数?定义整数的速度
- C++ - 整数除以整数返回错误答案
- 如何将字节数组转换为整数类型(整数、长整型、短型等)"安眠安"?
- 用于270位整数的c++整数库
- 从下面哪个数转换成整数->双→整数无效