我很难弄清楚这是如何运作的
我的说明如下: 文件中的一行(作为字符串输入)进入一个字符串向量。因此,如果文件有25行,您将在(输入后)最终得到25个字符串向量,每个字符串包含一个字符串。然后,您开始将矢量对连接到更大的矢量,直到只有一个矢量包含所有字符串。 我的问题是如何读取文件并为每行创建一个向量,因为该数字始终不同?
答案 0 :(得分:0)
你应该创建一个矢量矢量。这样,您可以使用索引引用每个单独的向量。
How do you create vectors with different names in a for loop
答案 1 :(得分:0)
由于向量是动态的,并且不需要像数组一样具有固定大小,因此您可以简单地创建向量向量以存储文件的所有行。如果你的文件有25行,那么将会有一个向量,其中包含25个字符串向量。请参阅下面的示例代码。
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
/*
There is a file (sample.txt) created for this example that contains the following contents:
hello world
this is a long line of words
while
this
is
a
short
line
of
words
*/
int main(int argc, char*argv[])
{
ifstream file_To_Read(argv[1]); //Creating an ifstream that opens a file from a command line argument
vector< vector<string> > complete_Vector; //This is a single vector that will contain multiple vectors
string line; //String used to store file contents a line at a time
vector<string> tempVec; //Vector that will contain the singular line
while(getline(file_To_Read, line)) //While you can read the file's content a line at a time, place its content into line
{
tempVec.push_back(line);
complete_Vector.push_back(tempVec);
}
//The sample file has 10 lines, so complete_Vector.size() should be 10 (10 vectors are in it)
return 0;
}