繁体   English   中英

fstream文件无法读取

[英]fstream file fails to read

我想传递一个fstream对象并将这些单词标记化。 它将始终打印无法打开hasNextToken()文件。 可以有人帮我。

//main.cpp

int main() {
    string filename = "input.txt";
    fstream inputStream(filename);
    Tokenizer t(inputStream);
    while (t.hasNextToken()) {
    cout << t.nextToken();
 }
}

//Tokenizer.h

class Tokenizer {
    fstream fin;

public:
    Tokenizer(fstream& file)
    {
        fin << file;
    }

    bool hasNextToken() {
        if (!fin) {
            cout << "Could not open file: " << endl;
            exit(0);
        }
        return true;
    }

    string nextToken() {
        string line;
        getline(fin, line);
        if (fin) {
            istringstream sin(line);
            string word;
            sin >> word;
            return word;

        }
    }
};

尝试这个:

class Tokenizer {
    fstream& fin;

public:
    Tokenizer(fstream& file)
    : fin(file)
    {}

...
}

我不确定这是否行得通,目前无法测试,但您可以快速进行:

int main() {
    string filename = "input.txt";
    fstream inputStream(filename, ios::in); // add second argument
    // other stuff here
}

干杯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM