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

How to avoid counting blank lines in the end of a file?

本文关键字:计算 何避免 文件      更新时间:2023-10-16

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

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

这是我计算行数的循环:

int count_lines(fstream& infile) {
int counter_lines=0;
string unused;
while ( getline(infile, unused) ) {
        counter_lines++;
    }
    infile.close();
return counter_lines;
}

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

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

您可能需要将unused更改为不同的变量名。

对空白行使用单独的计数器。如果遇到EOF,则丢弃计数器,否则将其添加到实际的行数中。这将丢弃文件末尾的多个空行。