0

我正在尝试从文本文件的特定列(在本例中为 0)中提取字符,并将它们加载到向量中。代码似乎可以正常工作,直到它到达最后,当我收到“字符串下标超出范围”错误时,我不知道如何解决这个问题。有谁知道我能做什么?这是相关的代码。

class DTree
{
private:

    fstream newList;
    vector<string> classes;
public:
     DTree();
    ~DTree();

void loadAttributes();
};

void DTree::loadAttributes()
{ 

string line = "";
newList.open("newList.txt");
string attribute = "";
while(newList.good())
{
    getline(newList, line);

    attribute = line[0];
    classes.push_back(attribute);
}
}
4

2 回答 2

3

请试试'while(getline(newList, line)'

参考这里

于 2012-12-07T02:09:26.457 回答
0

您也可以尝试类似

ifstream ifs("filename",ios::in);

string temp;
getline(ifs,temp)// Called as prime read

while(ifs)
{
    //Do the operations
    // ....

    temp.clear();
    getline(ifs,temp);
}
ifs.clear();
ifs.close();

这适用于几乎所有类型的文件。您可以根据您的要求getline(ifs,temp)get()功能或运算符替换。>>

于 2012-12-07T02:29:56.543 回答