#include <stdio.h>
#include <string.h>
#define N 32
int linenum_fgetc(char const * path)
{
int line = 0, ret;
FILE * fp = fopen(path,"r");
if(NULL == fp)
{
perror("fopen");
return -1;
}
while(EOF != (ret = fgetc(fp)))
{
if('\n' == ret)
{
line++;
}
}
fclose(fp);
return line;
}
int linenum_fgets(char const * path)
{
int line = 0 ;
char buf[N];
FILE*fp = fopen(path,"r");
if(NULL == fp)
{
perror("fopen");
return -1;
}
while(NULL != fgets(buf,N,fp))
{
if(buf[strlen(buf)-1] == '\n')
{
line++;
}
}
fclose(fp);
return line;
}
int main(int argc, char const *argv[])
{
if(argc < 2)
{
printf("./a.out filename\n");
return -1;
}
printf("line_num:%d\n", linenum_fgetc(argv[1]));
printf("line_num:%d\n", linenum_fgets(argv[1]));
return 0;
}
使用fputc或者fgets实现统计文件的行数
最新推荐文章于 2023-03-28 17:17:48 发布