获取一个文件行数的方法

第一种方法
 
思路:将文件中的字符一个一个读出,然后与 \n 作比较。

代码如下:

#include <stdio.h>
     #include <string.h> 
     #include <errno.h>

int main(int argc, char *argv[]) 
     {  
         FILE *fp;  
         int n = 0; 
         int ch;

if((fp = fopen(argv[1],"r+")) == NULL) 
         { 
             fprintf(stderr,"open file 1.c error! %s\n",strerror(errno)); 
         }

while((ch = fgetc(fp)) != EOF)
         { 
             if(ch == '\n') 
             { 
                 n++; 
             }
         }

fclose(fp);
         printf("%d\n",n); 
         return 0;
     }

第二种方法
 利用fgets。fgets的原型:char *fgets(char *s, int size, FILE *stream);,fgets最多可以读到size-1个字符,剩下的一个是给 \0 预留的,即总要给 \0 预留一位。同时还应注意:fgets遇到 \n 时就停止本次读取,如果数组中可以放下 \n 那么就读 \n ,否则只能下一次读取了,但是可以肯定的是,如果放到下一次读,那么 \n 肯定是第一个,从而造成下次只能读到 \n ,\0会自动加上。剩下的内容还得下下次读。这下就找到规律了!即 \n 总是在 \0 的前一位上。

代码如下:

#include <stdio.h>  
     #include <string.h>  
     #include <errno.h>

int main(int argc, char *argv[])  
     { 
         FILE *fp; 
         int n = 0;
         char buffer[3];

if((fp = fopen(argv[1],"r+")) == NULL)
         { 
             fprintf(stderr,"open file 1.c error! %s\n",strerror(errno)); 
         }

while((fgets(buffer,3,fp)) != NULL)
         {
             if(buffer[strlen(buffer) -1] == '\n')
             { 
                 n++;
             } 
         }

fclose(fp);
         printf("%d\n",n); 
         return 0; 
     }

(0)

相关推荐

  • 获取一个文件行数的方法

    第一种方法 思路:将文件中的字符一个一个读出,然后与 \n 作比较. 复制代码 代码如下: #include <stdio.h>      #include <string.h>       #include <errno.h> int main(int argc, char *argv[])       {            FILE *fp;            int n = 0;           int ch; if((fp = fopen(argv[

  • PHP获取文件行数的方法

    本文实例讲述了PHP获取文件行数的方法.分享给大家供大家参考.具体分析如下: 提供两种实现方法,虽然第二种简单易懂,但是第一种效率最好 第一种: <?php $file_path = 'xxx.txt'; //文件路径 $line = 0 ; //初始化行数 //打开文件 $fp = fopen($file_path , 'r') or die("open file failure!"); if($fp){ //获取文件的一行内容,注意:需要php5才支持该函数: while(s

  • Python3读取UTF-8文件及统计文件行数的方法

    本文实例讲述了Python3读取UTF-8文件及统计文件行数的方法.分享给大家供大家参考.具体实现方法如下: ''''' Created on Dec 21, 2012 Python 读取UTF-8文件 统计文件的行数目 @author: liury_lab ''' # -*- coding: utf-8 -*- import codecs # 对较小的文件,最简单的方法是将文件读入一个行列表中, # 然后计算列表的长度即可 count = len(codecs.open('d:/FreakOu

  • php 获取文件行数的方法总结

    stream_get_line获取文件行数 <?php $file_path = 'xxx.txt'; //文件路径 $line = 0 ; //初始化行数 //打开文件 $fp = fopen($file_path , 'r') or die("open file failure!"); if($fp){ //获取文件的一行内容,注意:需要php5才支持该函数: while(stream_get_line($fp,8192,"\n")){ $line++;

  • 批处理获取文件夹下面txt文件行数并添加到文件名后

    方法一: @echo off&setlocal enabledelayedexpansion for /f "delims=" %%a in ('dir /a-d/b/s *.txt') do ( for /f "tokens=3 delims=:" %%b in ('find /c /v "" "%%a"') do set n=%%b ren "%%a" "%%~na_!n: =!%%~

  • Shell脚本统计文件行数的8种方法

    获取单个文件行数 文件:test1.sh 行数:20 方法一 复制代码 代码如下: awk '{print NR}' test1.sh|tail -n1 如图所示: 方法二 复制代码 代码如下: awk 'END{print NR}' test1.sh 如图所示: 方法三 复制代码 代码如下: grep -n "" test1.sh|awk -F: '{print '}|tail -n1 如图所示: 方法四 复制代码 代码如下: sed -n '$=' test1.sh 如图所示: 方

  • python统计一个文本中重复行数的方法

    本文实例讲述了python统计一个文本中重复行数的方法.分享给大家供大家参考.具体实现方法如下: 比如有下面一个文件 2 3 1 2 我们期望得到 2,2 3,1 1,1 解决问题的思路: 出现的文本作为key, 出现的数目作为value,然后按照value排除后输出 最好按照value从大到小输出出来,可以参照: 复制代码 代码如下: in recent Python 2.7, we have new OrderedDict type, which remembers the order in

  • php更新mysql后获取改变行数的方法

    本文实例讲述了php更新mysql后获取改变行数的方法.分享给大家供大家参考.具体分析如下: 一个php更新mysql后获取改变的行数,在php中提供mysql函数来获取最后执行查询所影响的记录数:mysql_affected_rows(), 返回最近一次与 连接句柄 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数.FOUND_ROWS() : select ROW_COUNT():update delete insert. 下面就是文章的主要内容描述,代码如下: 复

  • 基于vue v-for 多层循环嵌套获取行数的方法

    在做vue项目的时候难免会用到循环,可是但我们后台数据返回多条记录而且是多层嵌套关系的时候,我们需要获取当前第几次循环此时就会出现问题. 下面给大家介绍两种方式,第一种是基于数学公式:第一次循环*(第二次循环总长度)+1+第二次循环 可以获取当前第几次循环 第二种方法:是在方法中进行计算返回当前下标.废话不多说先看一下效果吧 具体代码如下: 测试数据json字符串: parentList: [{ childList: [{ index: 1, childName: "第一个节点" },

  • 利用Java简单实现一个代码行数统计器方法实例

    前言 哈喽,我是小黑, 最近学了java的输入输出流后一直心痒痒,总想找一点事情来做,所以用java代码来实现了一下统计代码的所有行数,看一下我上大学以来到底打了多少行. 先附上实现代码吧! package InOutStream; import java.util.* ; import java.io.* ; class codeCount { private static int count ; //统计总行数 private static int countCPP ;//CPP priva

随机推荐