C++ 在将字符串提取到标量时处理溢出/下溢
C++ Handle overflow/underflow when extracting string to scalars
将数据从字符串提取到标量(char,short,int...)时,我如何轻松知道我想要获取的值是否超过类型限制?
unsigned char function(void)
{
std::string str = "259";
std::ostringstream os(str);
unsigned char scalar; // could also be short, int, float or double
if (str > /* limit of char */)
{
/* throw exception */
}
os >> scalar;
return scalar;
}
考虑新的 C++11 转换函数,如 std::stoi
。在这种情况下,他们应该抛出std::out_of_range
异常。不幸的是,这不会直接处理char
的情况,但您可以先转换为int
,然后手动检查范围。
相关文章:
- 奇怪的消息 (_Base_bitset::_M_do_to_ulong) 从溢出异常处理程序中打印出来
- 在 Myfile.exe 中0x00831D39时未处理的异常:0xC00000FD:堆栈溢出(参数:0x0000000
- CUDA 编程未处理的异常和堆栈溢出
- 引用计数智能指针如何避免或处理引用计数器溢出?
- 处理第三方DLL的缓冲区溢出
- 用管道在C++中创建调度队列/线程处理程序:FIFO溢出
- C++ 在将字符串提取到标量时处理溢出/下溢
- 程序在函数声明时崩溃,出现未经处理的异常:堆栈溢出
- 如何在功能中的理智检查过程中处理整数的溢出
- CImg 错误未处理的异常堆栈溢出
- CPP_TEST.exe中0x7604c128处未处理的异常:0xC00000FD:堆栈溢出
- Quick.exe中0x003714e9处未处理的异常:0xC00000FD:堆栈溢出
- 如何在C++中处理或避免堆栈溢出
- 0x00363A09处出现未处理的异常,堆栈cookie检测代码检测到基于堆栈的缓冲区溢出
- 未经处理的异常堆栈溢出 win32 控制台应用程序
- 如何从日期中减去月份并能够处理溢出
- 具有大型数组的 C++ 堆栈溢出未经处理的异常
- 如何处理长溢出
- c++处理队列溢出
- 试图在递归函数内部捕获失败的分配:未处理的异常/堆栈溢出