用于读取 double 的 istream 操纵器
istream manipulators for reading double
我需要从 istringstream 中读取像 14.3925125E
这样的数字作为格式化输入的一部分。 E
意思是东方,不是科学计数法。
当我尝试使用 input >> double >> char
时,流似乎将数字视为错误的科学数字并失败了。我尝试了操纵器 std::fixed
和 std::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;
我需要从 istringstream 中读取像 14.3925125E
这样的数字作为格式化输入的一部分。 E
意思是东方,不是科学计数法。
当我尝试使用 input >> double >> char
时,流似乎将数字视为错误的科学数字并失败了。我尝试了操纵器 std::fixed
和 std::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;