[英]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.