将文本文件中的文本存储到六个不同的向量中(C++)

将文本文件中的文本存储到六个不同的向量中(C++),c++,vector,C++,Vector,我需要将文本文件中的文本存储到几个不同的向量中。 文本文件的外观如下所示: 1111 洗碗工 20 250.50 550.50 2222 微波 75 150 400 3333 炉灶 50 450 850 4444 圆锯 150 45 125.00 我的向量是: vector<int> iID; vector<string> iName; vector<int> pOrdered; vector<int> pInStore; vector&l

我需要将文本文件中的文本存储到几个不同的向量中。 文本文件的外观如下所示: 1111 洗碗工 20 250.50 550.50 2222 微波 75 150 400 3333 炉灶 50 450 850 4444 圆锯 150 45 125.00

我的向量是:

vector<int> iID;
 vector<string> iName;
 vector<int> pOrdered;
 vector<int> pInStore;
 vector<double> manufPrice;
 vector<double> sPrice;


因此,文本文件中的信息必须是iID、iName、pOrdered、pInStore、manufPrice、sPrice,但我不确定如何实现这种代码。

IMHO,您应该远离并行数组,并使用结构对数据建模:

您的输入代码可能如下所示:

std::vector<Record> database;
Record r;
while (infile >> r)
{
    database.push_back(r);
}

并行阵列的一个问题是它们可能会失去同步

建议:创建一个聚合所有需要读取和存储的不同类型数据的结构,并创建此结构的单个向量。如果将所有数据记录保存在一个位置,您会发现簿记更容易管理。旁注:如果使用单一结构,您可以轻松编写成员函数或自由函数,如插入运算符,这可以使工作变得非常简单。例如:向量项;mystruct项目;填充>>项目项时。向后推项目;全部完成。我需要将一个文本文件中的文本存储到几个不同的向量中——这是本书的经典开头。不同之处在于,我们知道您想要完成什么,而不必从您那里打听:为什么您的输入示例和字段描述之间存在差异?考虑到第一行,iID[1111]、iName[Dish-Sleer]、pOrdered[20]、pInstore[250.50]、manufPrice[550.50]、?sPrice[2222]?此外,如果您使用空间作为字段分隔符,那么您将很难读取iName字段。无法判断字段是否以制表符分隔。
std::vector<Record> database;
Record r;
while (infile >> r)
{
    database.push_back(r);
}