使用 2D 矢量从 txt 读取文件

Read file from txt using 2d vectors

本文关键字:txt 读取 文件 2D 使用      更新时间:2023-10-16

二维向量的情况下可以使用运算符 []?例如,我得到了以下代码:

vector<vector<string>> data;
ifstream myReadFile;
myReadFile.open("stoixeia_astheni.txt");

while (!myReadFile.eof()) {
    for(int i=0; i<1; i++){
        for (int j=0; j<4; j++){
            myReadFile  >> data[i][j];
        }
    }
}

我收到的消息超出了范围。我有一个 5 行和 4 列的文件。

向量data为空,其size()为 0。您必须先resize它或使用push_back()添加新元素:

while (!myReadFile.eof()) {    
    for(int i = 0; i < 1; i++){
        vector<string> tmpVec;
        string tmpString
        for (int j = 0; j < 4; j++){
            myReadFile  >> tmpString;
            tmpVec.push_back(tmpString);
        }
        data.push_bac(tmpVec);
    }
}

您也可以在声明data时设置大小:

vector<vector<string>> data(5,vector<string>(4));
ifstream myReadFile;
myReadFile.open("stoixeia_astheni.txt");
while (!myReadFile.eof()) {
    for(int i=0; i < 5; i++){
        for (int j=0; j<4; j++){
            myReadFile  >> data[i][j];
        }
    }
}