从文件中读取行数、单词数、字符数



我可以很容易地读取行数,使用:

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建议。
谢谢你。

读取该行,每行数单词数。第二部分请参见stringstream。

(我不会给出更多的信息,这看起来太像家庭作业了)

这可以通过一个简单的boost.spirit.qi解析器来完成。

继续使用iostreams解决方案:您可以从通过getline()读取的每行创建一个strstream,并对其进行单词/字符计数操作,累加到所有行。

最新更新