如何使用 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
。读取发生后,我想在 num1
中有 1234
,在 num2
中有 1234.5678
。
最佳答案
不需要解析两次,假设数字只有 4 位并且不是很大,double 应该能够精确地保存整数部分,因此您可以在之后将其截断为 int。
stringstream ss("1234.5678");
double foo;
ss >> foo;
int bar = static_cast<int>(foo);
关于c++ - 如何使用 stringstream 将字符串同时转换为 int 和 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42659379/