作者:我爱上帝爱我 | 来源:互联网 | 2023-02-09 13:43
我运行这个程序,
#include
int main(int argc, char *argv[])
{
std::cout <
我期待这个结果:
terminate called after throwing an instance of 'std::invalid_argument'
what(): stod
但是我得到了5.这对你来说是对的吗?最好的祝福
我处理csv文件,如果我有"5.000e-M1"我需要一个错误而不是5.你知道一个有这种行为的函数吗?
1> Quentin..:
std::stod
被指定调用std::strtod
.从后者的文件(强调我的):
函数丢弃任何空白字符(由确定std::isspace()
),直到找到第一个非空白字符.然后,它需要尽可能多的字符来形成有效的浮点表示并将它们转换为浮点值.
5.000e-M1
不是一个有效的浮点表示,但是5.000
,它需要并成功.