c++ - 检测输入中的整数溢出

标签 c++ c integer overflow

在C或C++中有没有办法检查用户提供的数字是否超出整数类型的范围?

例如,假设我们使用范围为 -32768 到 32767 的 16 位有符号整数。

如果用户在程序中输入 55555,它会被包装成一个负数,这样如果您使用可以接受任何数字的函数,结果将是错误的。

C或C++有没有办法判断用户提供的数字是否在整型范围内?


更新:我在一个简单的减法程序中使用数字,它接受两个数字并从第一个数字中减去第二个数字。

最佳答案

如果您使用类似strtol 的东西,它会在发生溢出时将errno 设置为ERANGE

关于c++ - 检测输入中的整数溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12938053/

相关文章:

c++ - 追踪程序流产的工具

c - 倒回 VT100 终端命令中的一段文本

c++ - c或c++中的静态 block 是什么?

c++ - 将 QStringList 元素拆分为更多元素

c++ - 字符串 vector 的高效组合

javascript - 使用正则表达式验证输入中是否包含任何非数字

c - 为什么我不能在 64 位机器上将 2^64 存储在 unsigned long 中?

java - 我可以在不使用循环的情况下从Java中的单行输入读取多个整数吗

c++ - 保持最大尺寸的 vector ?

c - 在 *nix 系统上的 C 中,使用 $PATH 或 "which"找到二进制文件的绝对路径?