我想傳遞一個fstream對象並標記這些單詞。它會一直打印無法打開文件hasNextToken()
。願有人幫助我。fstream文件無法讀取
//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;
}
}
};
錯誤信息? – 2012-08-09 05:12:00
'fin'永遠不會被初始化。 – 2012-08-09 05:12:19
我將它添加到初始化程序列表中,但出現有關訪問在ios中聲明的私有成員的錯誤。 – newbieLinuxCpp 2012-08-09 05:24:19