从文本文件中拆分字符串并将值存储到数组而不是向量c ++

时间:2013-10-18 08:22:35

标签: c++

我有一个文本文件,其中包含人员ID,人名,人年龄和今天的日期。我知道如何逐行阅读并将字符串溢出并将其存储到矢量中并将其打印出来。

age.txt

1:john:23:18-Oct-2013
2:mary:21:18-Oct-2013
3:suzy:20:18-Oct-2013

代码

ifstream readFile("age.txt");
string words;
vector<string> storeWords;
while (getline(readFile, line,':'))
{
    stringstream iss(line);
    while (iss >> words) {
        storeWords.push_back(words);
    }

}

for (int i=0; i<storeWords.size(); i++) {
    cout << storeWords[i] <<endl;
}

输出

1
john
23
18-Oct-2013 
2
mary
21
18-Oct-2013
3
suzy
20
18-Oct-2013

但我真的不知道如何将它们存储到数组中而不是使用vector并制作它

之类的东西
personId[] will contain all the id from the output;
personName[] will contain all the name from the output;
personAge[] will contain all the age from the output;
dateTime[] will contain all the date and time from the output;

请指教。提前致谢

1 个答案:

答案 0 :(得分:0)

我们需要一个结构来首先捕获您的数据:

struct Data {
   unsigned int id;
   string name;
   unsigned int age;
   time_t time; // might be a C++ data type for this
}

你基本上有一个vector<Data>

您可以重载operator <<以读取字符串行并填充这些字段。 最重要的是没有4个数组用于此任务,而是一个数组(请使用向量代替)并将字段封装成更大的类型。