我可以很容易地读取行数,使用:
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,并对其进行单词/字符计数操作,累加到所有行。