读取文件中的行数,单词,字符数

时间:2011-04-15 11:28:49

标签: c++ boost

我可以使用以下方法轻松读取行数:

ifstream in(file);
string content;
while(getline(in, content))
{
   // do stuff
}

或者我可以使用以下内容轻松阅读单词和字符的数量:

ifstream in(file)
string content;
int numOfCharacters = 0;
int numOfWords = 0;
while(in >> content)
{
   ++numOfWords;
   numOfCharacters += content.size();
}

但我不想两次阅读该文件。如何读取文件一次,找出行数,单词和字符?

PS:如果有一个简单的方法,我会欢迎Boost的消化 谢谢。

3 个答案:

答案 0 :(得分:1)

读取行和每行计数单词。请参阅stringstream了解第二部分。

(我没有提供更多信息,看起来太像家庭作业了。)

答案 1 :(得分:1)

这可以通过一个简单的boostspiritqi解析器来完成。

答案 2 :(得分:1)

坚持使用iostreams解决方案:您可以通过getline()读取每行中的strstream,并对其执行单词/ char计数操作,累积所有行。