【发布时间】:2016-11-07 10:25:39
【问题描述】:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main() {
istringstream iss("2.832 1.3067d nana 1.678");
double num = 0;
while(iss >> num || !iss.eof()) {
if(iss.fail()) {
iss.clear();
string dummy;
iss >> dummy;
continue;
}
cout << num << endl;
}
return 0;
}
使用 stringstream 打印数字,但当我包含时,例如 1.3067d,但它仍然打印 1.3067。我怎样才能只打印号码?我希望它只打印 2.832 和 1.678。
【问题讨论】:
-
读取为字符串,然后使用
std::stod转换为数字。然后你可以像你一样检测输入中的错误。
标签: c++ string numbers istringstream