gpt4 book ai didi

c++ - 使用 stringstream 处理转换为 double 时出错

转载 作者:行者123 更新时间:2023-11-28 01:51:47 25 4
gpt4 key购买 nike

#include <iostream>
#include <string>
#include <sstream>

int main() {
std::istringstream iss;
iss.str("1.23@45");
double result;
iss >> result;
std::cout << result << std::endl;

if (!iss.eof() || iss.fail()) {
std::cout << "error occurred" << std::endl;
}
}

输出是

1.23
error occurred

是否有更好的解决方案来检查是否已处理所有字符?

更新

此外,我想知道是否有任何方法可以检测超出范围 错误。

最佳答案

if (!iss.eof() || iss.fail())

因为字符串流还没有到达流的末尾。 eof() 显然是假的,而这个 if() 条件将评估为真。

结果是正确的:不是所有的字符都被处理了。

关于c++ - 使用 stringstream 处理转换为 double 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42763765/

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