如何使用stringstream将字符串转换为int和double?
输入将是四位数后跟一个句点后跟另外四位数字(####。####)并且我需要将前四位数字提取到一个int然后整个事情需要是一个双,但我不知道从哪里去
string s;
cin >> s;
stringstream ss;
ss << s;
int num1; // needs to be int
ss.str(s);
ss >> num1;
ss.clear();
ss << s;
double num2; // needs to be a double
ss >> num2;
例如,我们假设输入中有1234.5678
。阅读完成后,我希望1234
中的num1
和1234.5678
中的num2
。
答案 0 :(得分:2)
不需要解析这两次,假设数字只有4位且不是很大,则double应该能够精确地保持整数部分,因此你可以在之后将其截断为int。
stringstream ss("1234.5678");
double foo;
ss >> foo;
int bar = static_cast<int>(foo);