打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
038.同时显示两个文件的内容
#include <stdio.h>
#define PAGELINE   20
#define PAGESPLINE 2
#define TXTWIDTH   30
#define TXTGAP     10

linecount()/*完成对输出行的计数和一页满后,输出空行*/
{
	static int pline=0;
	int i;

	if(++pline==PAGELINE)
	{
		for(i=0;i<PAGESPLINE;i++)/*输出一页后的空行*/
			printf("\n");
		pline=0;
	}
}

int readline(FILE *fpt)/*完成从指定的文件中读出一行多至30个字符并输出*/
{
	int c,cpos=0;

	while((c=fgetc(fpt))!='\n')
	{
		if(feof(fpt))
			break;/*文件结束推出循环*/
		printf("%c",c);
		cpos++;
		if(cpos>=TXTWIDTH)
			break;
	}
	return cpos;/*返回读入并输出的字符数*/
}

main()
{
	FILE *fpt1,*fpt2;
	char fname[120];/*存贮文件名*/
	int fill1,fill2;/*分别记录两个文件当前行读入并输出的字符数*/

	clrscr();
	printf("Enter file 1 name.\n");
	scanf("%s",fname);
	fpt1=fopen(fname,"r");/*打开文件1*/
	if(fpt1==NULL)
	{	printf("Can't open file %s.\n",fname);
		exit(1);
	}
	printf("Enter file 2 name.\n");
	scanf("%s",fname);
	fpt2=fopen(fname,"r");/*打开文件2*/
	if(fpt2==NULL)
	{	printf("Can't open file %s.\n",fname);
		fclose(fpt1);
		exit(2);
	}

	while(!feof(fpt1)||!feof(fpt2))/*在有文件还未结束时循环*/
	{
		fill1=fill2=0;
		if(!feof(fpt1)) fill1=readline(fpt1);/*在文件未结束时读文件*/
		printf("%*c",TXTWIDTH-fill1+TXTGAP,'');
		if(!feof(fpt2)) fill2=readline(fpt2);/*在文件未结束时读文件*/
		printf("%*c%2d\n",TXTWIDTH-fill2+4,'',fill1+fill2);
		linecount();/*调用行计数函数*/
	}
	puts("\n Press any key to quit...");
	getch();
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C语言每日一练(010)
外部排序技术之多路归并
小话c语言(4)
feof()和EOF的用法—— C中文件结尾的判断
[知识点] 1.2 C 入门基础知识1——初识
编译预处理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服