假设我有以下字符串:
string str = "I 500.000 500.000 30000 30.000 60.000 20.000 20.0 60.0 ;"
以下变量:
double x1;
double x2;
int x3;
我想解析上面的字符串,以便最后
x1 = 500.000
x2 = 500.000
x3 = 30000
进行此类解析的最佳方法是什么?我们非常感谢您的代码段。
谢谢!
更新
好吧,当我说“最好”时,我实际上意味着最简单,就像你在什么时候给你一个样本字符串,你知道字符串是如何格式化的。例如,一个字符后跟两个双精度后跟一个整数等...而我所关心的只是最简洁的代码。无需处理时间和额外的数据处理。
答案 0 :(得分:3)
stringstream满足您的需求:
#include <sstream>
std::istringstream iss(str);
iss.get(); //'I'
if (iss >> x1 >> x2 >> x3) {
//success
}
答案 1 :(得分:2)
使用stringstream如下:
string str = "I 500.000 500.000 30000 30.000 60.000 20.000 20.0 60.0 ;"
stringstream ss(str);
char c =' ';
ss >>c>> x1 >> x2 >>x3 ;