如何避免在文件末尾计算空白行?

时间:2015-09-08 01:05:18

标签: c++ counting

我有一个项目,我应该计算文件中的行,单词和字符。我的程序运行正常,但如果有的话,我不应该在文件末尾计算一个空行。

如果有文件末尾,如何避免计算空白行?我可以假设文件末尾最多有一个空行。

这是我计算行数的循环:

int count_lines(fstream& infile) {
int counter_lines=0;
string unused;

while ( getline(infile, unused) ) {
        counter_lines++;
    }
    infile.close();
return counter_lines;
}

1 个答案:

答案 0 :(得分:3)

有一个bool变量来指示读取的行是否为空,将其称为lastLineWasBlank(将其初始化为false)。然后每次循环,将其设置为unused.empty()

当你的循环结束时,如果lastLineWasBlank为真,则从计数中减去一个。

然后,您可能希望将unused更改为其他变量名称。