gpt4 book ai didi

c++ - boost lexical_cast 抛出异常

转载 作者:搜寻专家 更新时间:2023-10-31 00:23:14 28 4
gpt4 key购买 nike

我正在为 C++ 使用 boost 库,函数 lexical_cast 的行为非常奇怪。如果我执行 lexical_cast("0.07513994") 它工作正常,但如果我使用我需要转换的变量,它会抛出 bad_lexical_cast 异常。这是代码:

string word;
istringstream iss(line);
do
{
string word;
iss >> word;
double x;
x = lexical_cast<double>(word);
cout << x << endl;
} while (iss);

我在这里做错了什么?感谢您的帮助,谢谢

最佳答案

您的问题可能是循环的处理次数比您预期的多了一次。通过循环的最后一次,读取字失败,在 iss 中设置失败位,这是 while(iss) 正在检查的内容。要修复它,您需要执行类似的操作。

string word;
istringstream iss(line);
do
{
string word;
iss >> word;
if(iss)
{
double x;
x = lexical_cast<double>(word);
cout << x << endl;
}
} while (iss);

关于c++ - boost lexical_cast 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2333625/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com