int x;
float f;
std::string s = "3.7";
std::istringstream is(s);
is >> x >> f;
为什么'x'和'f'的结果是3和0.7?
当我使用
is >> f;
'f'的结果是3.7。
答案 0 :(得分:0)
istreamstream从流中提取尽可能多的字符fit into the target datatype(参见算术类型)。另一个停止条件是空格char。
因此,如果您将代码更改为以下内容:
int x;
char c;
int f;
std::string s = "3.7";
std::istringstream is(s);
is >> x;
is >> c;
is >> f;
std::cout << x << std::endl;
std::cout << c << std::endl;
std::cout << f << std::endl;
这将导致以下输出:
3
.
7