我需要从istringstream读取像14.3925125E
这样的数字作为格式化输入的一部分。 E
表示东方,而不是科学记数法
当我尝试使用input >> double >> char
时,看起来该流将数字视为错误的科学而失败。我尝试过操纵者std::fixed
和std::dec
,但没有帮助。还有其他我可以使用的东西吗?
答案 0 :(得分:1)
操纵者不会这样做,因为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;