如何使用stringstream同时将字符串转换为int和double

时间:2017-03-07 22:14:32

标签: c++ stringstream

如何使用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中的num11234.5678中的num2

1 个答案:

答案 0 :(得分:2)

不需要解析这两次,假设数字只有4位且不是很大,则double应该能够精确地保持整数部分,因此你可以在之后将其截断为int。

stringstream ss("1234.5678");
double foo;
ss >> foo;
int bar = static_cast<int>(foo);