鉴于我可以使用这样double foo
的十六进制格式字符串分配它:sscanf
sscanf("0XD", "%lg", &foo)
但我似乎无法以istringstream
同样的方式行事。所有这些都只是将 0 写入foo
:
istringstream("0XD") >> foo
istringstream("0XD") >> hex >> foo
istringstream("D") >> hex >> foo
当我在这里读到double
istream
提取操作符应该:
检查是否
char
允许从前面的步骤获得的输入字段中将由std::scanf
给定的转换说明符解析
为什么我不能从 中读取十六进制istream
?如果对测试有帮助,我在这里写了一些测试代码。