读取不同类型的行

时间:2014-05-08 14:25:37

标签: c++ input inputstream

文件格式如下:

A 1 2 3
B 1 2 3
...

我想在结构化观察的矢量中读取它们,如下所示:

struct Observation {
    string category;
    vector<int> variables;
};

我怎么读它们?我在这里搜索了一些解决方案,并尝试了:

int main() {
    ifstream infile("data.txt");
    string line;
    string category;
    vector<Observation> obs;
    int i = 0;
    while(getline(infile, line)) {
        istringstream iss(line);
        iss >> category;
        int j = 0;
        int value;
        while(iss >> value) {
            obs[i].variables[j] = value;
            j++;
        }
        i++;
    }
}

但它说:错误:变量'std :: istringstream iss'具有初始化程序但不完整类型我的编译器是Ubuntu 12.04上的g ++ 4.6.3,编译命令&#34; g ++ -std = c ++ 0x io。 cpp -g -o io&#34;,请帮助我,谢谢!

1 个答案:

答案 0 :(得分:1)

尝试包含<sstream>并更改添加到向量的方式:

while(iss >> value) {
    obs[i].variables.push_back(value);
}