如何避免在文件末尾计算空行
How to avoid counting blank lines in the end of a file?
我有一个项目,我应该计算文件中的行,单词和字符。我的程序工作正常,但我不应该计算文件末尾的空白行,如果有的话。
如果文件末尾有空行,我如何避免计算空行?我可以假设在文件末尾最多有一个空行。
这是我计算行数的循环:
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,则丢弃计数器,否则将其添加到实际的行数中。这将丢弃文件末尾的多个空行。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- C++避免重复声明的语法是什么
- (C++)分析树以计算返回错误值的简单算术表达式
- 在没有太多条件句的情况下,我如何避免被零除
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何重构类层次结构以避免菱形问题
- 如何计算文件中的"columns"数?
- 应由于计算费用而避免对STD的多个调用::发现,否则这是可以接受的情况
- 如何避免由于编译时计算的值而导致"unreachable statement"?
- 避免计算图中的虚函数调用
- 是否可以避免 for 循环来计算矩阵条目
- 避免在函数调用中计算数组元素
- 是否有任何合理的场景,程序员可能希望避免布尔表达式的短路计算
- 我如何在计算中避免-0.0
- 在计算中使用布尔值以避免分支
- 避免在数据未更改时重新计算
- c++ linux x86_64中如何控制双精度计算以避免舍入误差
- 如何避免在文件末尾计算空行