如何用C语言在linux上统计文件行数

如何用C语言在linux上统计文件行数,第1张

统计行数可以通过统计换行符\n来实现。不过需要注意的是,有些文件最后一行并不存在换行符,所以代码中需要对此作处理。

可以在达到文件结尾后,判断前一个字符,如果不是换行符,那么应补加最后一行统计。

代码如下:

假定输入文件为in.txt,该文件存在且可读。

#include <stdio.h>

int main()

{

    FILE * fp = NULL //文件指针。

    int c, lc=0 //c为文件当前字符,lc为上一个字符,供结尾判断用。

    int line = 0 //行数统计

    fp = fopen("in.txt", "r")//以只读方式打开文件。

    while((c = fgetc(fp)) != EOF) //逐个读入字符直到文件结尾

    {

        if(c == '\n') line ++ //统计行数。

        lc = c //保存上一字符。

    }

    fclose(fp) //关闭文件

    if(lc != '\n') line ++//处理末行

    

    printf("文件共有%d行。\n", line)

    

    return 0

}

样例输入输出:

如in.txt有如下内容:

test line1

test line2

则会输出:

文件共有2行。

wc命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。 语法:wc [选项] 文件… 说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读龋wc同时也给出所有指定文件的总统计数。

在 Linux 系统使用中,我们经常需要查看或统计文本文件中的行数,字数,字节数等内容,那么怎么快捷的统计出文件中这些关键数据呢。

在Linux系统中这统计非常方便,只需要简单的几个命令就可以搞定,这个命令就是 wc 。

首先我们介绍下 wc 这个命令:

帮助说明中简介明白的介绍了 wc 的用法,我们来举例说明下:

1、获取文件中行数

2、获取文件中单词数

3、获取文件中字节

是不是很简单呢。

查询文件的行数或字数只是个简单的需求场景,有时候我们其实是要获取多少匹配关键字的行数,那么这种情况如何实现呢,这种情况我们需要使用另外一个 grep 命令来配置 wc 来完成我们的需求场景。

首先我们看看grep这个命令:

我们通过如下命令方式来实现查询匹配到关键字'error'中文件行数。

是不是很简单,如果希望了解更多,不妨通过 man 命令来查看你想了解的命令吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7352703.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存