如何在C ++中将字符串分成不同的数据类型?

时间:2017-11-20 23:16:21

标签: c++ string parsing split stream

我想从文件中读取以下文字:

B-011 B 2250.50 Boda Alejandra y Mauro  
C-002 C 8000 300 Conferencia IEEE

然后将每一行(每个字符串)分成不同的数据类型。但并非每条线都具有相同的格式。第一行我想分成一个字符串(B-011),一个char(B),一个double(2550.50)和一个字符串(Boda Alejandra y Mauro)。第二个成为字符串(C-002),char(C),double(8000),int(300)和字符串(IEEE)。

该文件以类似的方式继续。我尝试过以下代码,但我不能让循环区分每一行。

stringstream ss;
string line;
char tipo;
string cveServicio, descripcion;
double ctoxHora;
int maxCantidad;

while(getline(file, line)){
    ss<<line;
    if(ss >> cveServicio >> tipo >> ctoxHora >> descripcion){
        cout << cveServicio << " " << tipo << " " << ctoxHora << " " << descripcion << endl;
    } else {
        ss >> cveServicio >> tipo >> ctoxHora >> maxCantidad >> descripcion;
        cout << cveServicio << " " << tipo << " " << ctoxHora << " " << maxCantidad << " " << descripcion << endl;
    }
}

0 个答案:

没有答案