用于读取 double 的 istream 操纵器

istream manipulators for reading double

我需要从 istringstream 中读取像 14.3925125E 这样的数字作为格式化输入的一部分。 E意思是东方,不是科学计数法。
当我尝试使用 input >> double >> char 时,流似乎将数字视为错误的科学数字并失败了。我尝试了操纵器 std::fixedstd::dec 但它没有帮助。还有什么我可以用的吗?

操纵器不会这样做,因为 E 是浮点值表示为文本的方式的一部分。例如14.25E2表示值1425.00.

您需要提取子串并分别解析。没有错误检查,就像....

std::string input("14.3925125E");
std::string substring = input.substr(0, input.find('E'));
std::istringstream str(substring);
str >> double_value;