实现指定文本文件行数的读取
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-22
最近在复习C语言 看到linux下head 和cat 的命令很好使 尝试自己实现了一下
就弄了两个程序 一个是读取指定行数 一个是 读取几行;
系统环境 ubuntu 9.10
编程环境 GCC 4.41
截图如下:
代码如下
/*程序功能 实现指定文本的行数读取 *使用方法 a.out <filename> <line no> */ #include <stdio.h> #include <stdlib.h> #include <string.h> char *read_line(const char *pathname,int line_n) { int len,file_size; char *str,*buf,*p; FILE *fp; fp=fopen(pathname,"r" ); if(fp==NULL){ perror("fopen error"); exit(1); } fseek(fp,0,SEEK_END); file_size=ftell(fp); str=(char *)calloc(file_size,sizeof(char)); rewind(fp); fread(str,sizeof(char),file_size,fp); str[file_size]=''''; p=str; char *q; int n=line_n-1; q=str; while(*p ){ if(*p==''n'') line_n--; if(line_n==0) break; } while(*q ) { if(*q==''n'') n--; if(n==0) break; } q ; if(*p=='''') { printf("已经到行尾n"); exit(1); } len=p-str; str[len]=''''; buf=q; free(str); fclose(fp); return buf; } int main(int argc, char** argv) { int i=atoi(argv[2]); char *buf; buf= read_line(argv[1],i); printf("%sn",buf); return 0; } |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于实现指定文本文件行数的读取的所有评论