文件合并程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
文件合并程序

#includestdio.h #includestring.h #define N 200 //假设每个文本有200行(可更改) #define M 180 //假设每行有180个字符(可更改) int main() { FILE *fp1,*fp2; //定义两个文件指针指向A、B两个文本 char filename1[20],filename2[20]; //输入两个文本的文件名 printf(输入要被包含进去的文本文件名:); scanf(%s,filename1); printf(输入将%s文本包含的文件名:,filename1); scanf(%s,filename2); int ch[2*N*M]; //定义一个整型数组存储文本A和B中的内容(因为文本中可能包含中文等其他字符,char类型不够存储Unicode编码的字符) if((fp1=fopen(filename1,r))==NULL) //以只读方式打开文本filename1 { printf(打开文件%s失败,程序自动退出\n,filename1); return 0; } if((fp2=fopen(filename2,r))==NULL) //以只读方式打开文本A { printf(打开文件%s失败,程序自动退出\n,filename2); return 0; } char p[20]; //定义一个字符串,方便在文本中查找 sprintf(p,#include\%s\,filename1); //将#includefilename1格式化输出到数组p中 int num=strlen(p); //算出字符串的长度 int i=0; while((ch[i]=fgetc(fp2))!=EOF) //开始读文本B中的内容到数组中 { if(ch[i]==#) //假如遇到#就开始判断其后面的内容是否和p一致 { int j=0; i++; while((ch[i]=fgetc(fp2))==p[j+1]jnum) //读取#的内容与p作比较 假如相同继续,直到不相等或比较完p中的内容 { i++; j++; } if(j==num-1) //假如#后的内容与p完全一致,即文本B中包含有#includeA.txt,则开始读取文本A中的内容到数组中,直到读完 { i-=num; //i减num是因为将读到数组中的#includeA.txt删除出去 while((ch[i]=fgetc(fp1))!=EOF) { i++; } } else //假如#后面的内容并不是include...则需将文件指针定位到#后的字符位置继续读入,并继续判断 { i=i-j; fseek(fp2,-j-1,SEEK_CUR); } } else { i++; //执行完if语句的内容,继续读文本B中的内容 } } int n=i; //标记i的大小 //关闭文本A和B fclose(fp1); fclose(fp2); //现在以w的方式打开文本B,然后将数组中的内容写到文本B中 if((fp2=fopen(filename2,w))==NULL) { printf(打开文件失败,程序自动退出\n); return 0; } for(i=0;in;i++) { fputc(ch[i],fp2); //写到文本B中 putchar(ch[i]); //显示到屏幕中 } printf(\n); fclose(fp2); return 0; }

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档