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 に答える