计算一个文本文件有多少行(利用标准IO函数实现)-创新互联

分享一个特简单的求文本文件行数的程序

成都创新互联是一家专注于网站建设、成都网站制作服务器托管的网络公司,有着丰富的建站经验和案例。

这里主要利用了标准IO相关的两个函数

FILE *fopen(const char *path,const char *mode);

char *fgets(char *s,int size,FILE * stream);

fopen()函数主要用于打开一个文件(前提是文件要有可读权限);

函数具体用法:第一个参数是目标文件的路径或者文件名,第二个参数为打开方式,这里为可读“r”,其返回值是一个FILE结构流指针,下次操作这个打开的文件就操作这个FILE指针;

fgets()函数主要用于读取,相对于gets()这里的fgets()参数略多但是它带有缓存机制,参数多也带来了好处,其中第二个参数size:表示每次从流中读入size-1个字符,第一个参数s: 字符型指针,指向存储读入数据的缓冲区的地址;第三个参数及需要读取的流;

整个程序主要利用以上两个函数,话不多说代码送上,简单易懂;

#include
#include


#define BUF_SIZE 200

int main(int arg,char *argv[])
{
	if(arg != 2)
	{
		printf("重新输入参数\r\n");
		return -1;
	}
	
	int cont = 0;
	FILE *fd=fopen(argv[1],"r");
	if(fd == NULL)
	{
		printf("fopen err\r\n");
		return -1;
	}
	char buf[BUF_SIZE]={0};
	while(fgets(buf,2,fd) != NULL)
	{
		if((buf[strlen(buf)-1]) == '\n')
		{
			cont++;
		}
	}
	printf("cont= %d\r\n",cont);

	return 0;
}

此函数是需要传参的,给主函数设置了两个参数,一个是限制参数个数为两个,另一个则在代码中标记需要处理的函数,所以可执行文件后需要带一个参数(需要计算行数的文本文件)

附件:http://down.51cto.com/data/2366436

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享题目:计算一个文本文件有多少行(利用标准IO函数实现)-创新互联
网页链接:http://azwzsj.com/article/dpspop.html