首页 > 解决方案 > 将 txt 文件中的行读入向量,然后将其传递给另一个向量以拆分行,使用逗号作为分隔符

问题描述

我无法理解 main() 之外的向量的概念。我正在尝试声明一个数组,然后将该数组传递给外部拆分向量,一旦所有行都被推回 main 中声明的向量。我的问题是了解如何将从 txt 文件中读取的行传递给要拆分的拆分向量,然后将第 4 个逗号之后的值返回给 main 方法中的原始向量。

vector<string> split(const string& s, const string& delim) {
const bool keep_empty = true;
vector<string> result;
if (delim.empty()) {
    result.push_back(s);
    return result;
}
string::const_iterator substart = s.begin(), subend;
while (true) {
    subend = search(substart, s.end(), delim.begin(), delim.end());
    string temp(substart, subend);
    if (keep_empty || !temp.empty()) {
        result.push_back(temp);
    }
    if (subend == s.end()) {
        break;
    }
    substart = subend + delim.size();
}
return result;
}


void binary(vector<string> &airPort);
void Linear_Search(vector<string> &airPort);

int main()
{
vector<string> airPort;

string s;
int counts = 0;
string inp;
string total;
string cat = "cat";
string a, b, c, d, e;
char bs;

ifstream file("airports.dat");

if (!file.is_open()) {
    cout << "Filed to Open File!" << endl;
    return 0;
}

while (getline(file, s))
{
    istringstream ls(s);


                airPort.push_back(s);

}

vector<string> airPort = split(",", s);  //trying to pass the lines in 
                                              the airPort vector to be 
                                              split up

最后,我试图将其更新到仅使用第 4 个逗号之后的值更新 airPort 向量的位置,因此程序的其余部分可能会使用该更新后的向量。

标签: c++parsingvector

解决方案


推荐阅读