从文件中读取多维向量
Reading multidimensional vectors from a file
我需要将txt文件中的值读取到n x 20向量中。文件是这样的
pipe 1 2 0 1 1 50 120 5 5 6 0 0
pipe 2 3 0 1 1 50 120 4 5 2 0 0
pipe 3 4 0 1 1 25 120 1 5 4 80 90
我想出的代码如下
vector<double> aRow;
vector< vector < double >> aPipes;
ifstream inf("F:\text.txt");
while (inf >> c0 >> c1 >> c2 >> c3 >> c4 >> c5 >> c6 >> c7 >> c8 >> c9 >> c10 >> c11 >> c12)
{
if (c0 == "pipe")
{
aRow.push_back(c1);
aRow.push_back(c2);
aRow.push_back(0);
aRow.push_back(c4);
aRow.push_back(c5);
aRow.push_back(c6);
aRow.push_back(c7);
aRow.push_back(c8);
aRow.push_back(c9);
aRow.push_back(c10);
aRow.push_back(c11);
aRow.push_back(c12);
aRow.push_back(0);
aRow.push_back(0);
aRow.push_back(0);
aRow.push_back(0);
aRow.push_back(0);
aRow.push_back(0);
aRow.push_back(0);
aRow.push_back(0);
aPipes.push_back(aRow);
i++;
}
}
nNumPipes = i;
cout << "Num of pipes: " << nNumPipes << endl;
但是,当我像这样打印整个矢量时,
for (int i = 0; i < nNumPipes; i++)
{
{for (int j = 0; j < 20; j++)
cout << setprecision(3) << aPipes.at(i).at(j) << "t";
cout << endl;
}
}
矩阵显示所有行,但它们都是第一行的重复。出于某种原因,只读取第一行。
任何帮助将不胜感激。
在
重用之前,您必须清除aRow
。否则,你会不断将相同的值推入矩阵中。
aPipes.push_back(aRow);
后添加aRow.clear();
相关文章:
- C++:如何读取分离变量,然后读取向量
- C++读取行到类向量
- 如何从文件中读取两个字符串和数字数组,并将它们存储在对象向量中
- 从流到邻接列表的向量读取图形
- 尝试将字符串从文件读取到无符号字符向量中
- 如何在 c++ 中从字符串向量中读取
- 将结构向量保存到文件中,并从C++文件中读取结构向量
- C++,从文件读取到结构,然后读取到向量(结构被推入向量太多次,而不仅仅是一次)
- 从.txt文件读取到C++中的双精度向量
- 用rapidjson读取子对象向量
- 对唯一 ptr 无效读取的引用向量
- 如何从输入文件中读取字符并将其存储到向量中?
- 如何使用 cin 将整数从控制台读取到向量中
- 通过将文本文件读取为字符串/向量来计算加权/未加权 GPA
- 以C++为单位将已知数量的整数输入正确读取到向量中
- C 从文件到向量读取
- 使用向量读取输入文件
- 在 TheADS 中的向量读取之间插入元素
- 从向量读取并分配给对象的成员
- 从保留的向量读取比从非保留向量读取更快