您当前的位置: 首页 >  c语言

111辄

暂无认证

  • 5浏览

    0关注

    91博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C语言文件知识——合并文件(源码可运行)

111辄 发布时间:2020-07-01 12:51:23 ,浏览量:5

需求: 实现文本文件合并程序,在命令行界面输入多个文件名,然后把后面的所有文件合并到第一个文件的程序

以下做的是四个文件的拷贝,如果有更多文件可以用一下copyFile()函数copy

#include 
#include 
#include 

void copyFile(FILE *p1,FILE *p2)
{
	fseek(p1,0L,SEEK_END);
	char ch=fgetc(p2);
	while(ch!=EOF)
	{
		fprintf(p1,"%c",ch);	
		ch=fgetc(p2);
	}
}
int main()
{
//借鉴文件copy
//利用while将后面的文件拼接到a.txt后

FILE *fp1,*fp2,*fp3,*fp4;
char fileName1[20],fileName2[20],fileName3[20],fileName4[20];
printf("请输入要合并的文件名:\n");
scanf("%s",fileName1);
scanf("%s",fileName2);
scanf("%s",fileName3);
scanf("%s",fileName4);
printf("您好,以上所有的文件将被合并到%s中",fileName1);
fp1=fopen(fileName1,"rt+");
fp2=fopen(fileName2,"r");
fp3=fopen(fileName3,"r");
fp4=fopen(fileName4,"r");

if((fp1= =NULL)||(fp2= =NULL)||(fp3= =NULL)||(fp4==NULL))
{ 
	printf("can not open files correctly\n");
	return 0;
}

else
{
	copyFile(fp1,fp2);
	copyFile(fp1,fp3);
	copyFile(fp1,fp4);	
	
}
	return 0;    
}

运行界面: 在这里插入图片描述 编写过程遇到的问题: 1.命令行界面:黑底白字的窗口 2.用函数真的比一个一个写方便,要有函数封装的意识 3.NULL/EOF都是在stdio.h中的,若拼写错误(如Null)提示: Eorror:‘Null’was not declared in this scope 4.Eorror:Id returned 1 exit status,因为运行窗口未关闭就又开了一个 5.fseek函数相当于一个文件中指针的定位函数 6.刚开始时做的fseek发现a中的数据总是被覆盖而不显示,但是b、c、d中的数据都可以成功依次拼接。这就是说是a这个文件的问题,找了找发现打开方式是只“w”,改成可读可写“rt+”就可了

后记: 讲真,这正好入学一年了,包括上学期的C和这学期的数据结构,这是我第一次完全自己写的作业,之前几乎都是copy copy再copy。 不知道在瞎忙什么,总是想吸收更多的知识而脱离了实践,所以知识也忘得快。 作业要认真做,做的过程中会收获很多,很多新旧知识都是在实际编写代码时候巩固甚至重新学习的。 做出来收获感真挺强的,即使是一个不难的小程序,一段不长的小代码

关注
打赏
1648114069
查看更多评论
立即登录/注册

微信扫码登录

0.1688s