我想使用ifstream
来读取C++中的文本文件,以了解单词,字符,行数。如何使用ifstream读取txt文件时检查EOF
unsigned int wordNum = 0;
unsigned int lineNum = 0;
unsigned int charNum = 0;
char check;
ifstream in("example_2_4.txt");
char temp[30];
if (!in.is_open()) {
cout << "File opening error!" << endl;
}
while (!in.eof()){
in.getline(temp, 30);
wordNum += countWord(temp);
charNum += countChar(temp);
lineNum++;
in.clear();
}
的问题是,eof()
不起作用,因为存在超过30个字符的行。
我已将!in.eof()
更改为in>>check
,它运行良好,但它读取一个字符,因此我无法计算所有字符。
我不应该使用string
类,并且不能更改缓冲区大小。
有没有适当的方法来检查eof
?