如何用C语言在linux上统计文件行数
3个回答
展开全部
统计行数可以通过统计换行符\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行。
2015-01-10
展开全部
int count( char *filename )
{
FILE *fp = fopen( filename, "r" );
int c, cnt = 0;
while( (c = fgetc( fp )) != EOF ) {
if ( c == '\n' ) {
cnt++;
}
}
fclose( fp );
return cnt;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main(void)
{
FILE *fp=fopen("txt.txt","r");
char c='\0';
int line=0;
while (c!=EOF)
{
fscanf(fp,"%c",&c);
if(c=='\n') line++;
}
fclose(fp);
printf("行数为:%d\n",line+1);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询