|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- /****有两个磁盘文件a.txt文件内容为(to catch up)和b.txt文件内容为(a moment),要求合并两个文件,
- 产生一个新文件,新文件的内容是按字母顺序。即文件内容为:aaccehmmnooptttu*******/
- #include "stdio.h"
- #include "stdlib.h"
- void main ()
- {
- FILE *fp1,*fp2,*fp3;
- char ch1,ch2,ch3[50];
- int i=0,j,temp;
- if(!(fp1=fopen("d:\\exe\\a.txt","r")))
- {
- printf("not been found !");
- exit(0);
- }
- if(!(fp2=fopen("d:\\exe\\b.txt","r")))
- {
- printf("not been found !");
- exit(0);
- }
- if(!(fp3=fopen("d:\\exe\\c.txt","w")))
- {
- printf("not been found !");
- exit(0);
- }
- ch1=fgetc(fp1);
- while(ch1!=EOF)
- {
- ch3[ i++]=ch1;
- ch1=fgetc(fp1);
- } //将ch1的值存入数组ch3。
- ch2=fgetc(fp2);
- while(ch2!=EOF)
- {
- ch3[i]=ch2;
- i++;
- ch2=fgetc(fp2);
- } //将ch2的值存入数组ch3。
- ch3[i]='\0';
- for(j=0;ch3[j];j++)
- {
- printf("%c",ch3[j]);
- }
- for(i=0;ch3[j];i++)
- {
- for(j=i+1;ch3[j];j++)
- {
- if(ch3[i]>ch3[j])
- {
- temp=ch3[i];
- ch3[i]=ch3[j];
- ch3[j]=temp;
- }
- }
- } //冒泡法排序。
- for(i=0;ch3[j];i++)
- {
-
- fputc(ch3[j],fp3);
- }
- fclose (fp1);
- fclose (fp2);
- fclose (fp3);
- }
复制代码
本帖最后由 jhq999 于 2021-8-14 06:55 编辑
我是用vs2012写的打开文件的函数不一样,但意思一样,你要是复制的话,把打开文件那3段修改一下.
- void main ()
- {
- FILE *fp1,*fp2,*fp3;
- char ch1,ch2,ch3[50];
- int i=0,j,temp;
- if(fopen_s(&fp1,"e:\\a.txt","r"))
- {
- printf("not been found !");
- return;
- }
- if(fopen_s(&fp2,"e:\\b.txt","r"))
- {
- printf("not been found !");
- return;
- }
- if(fopen_s(&fp3,"e:\\c.txt","w"))
- {
- printf("not been found !");
- return;
- }
- ch1=fgetc(fp1);
- while(ch1!=EOF)
- {
- ch3[ i++]=ch1;
- ch1=fgetc(fp1);
- } //将ch1的值存入数组ch3。
- ch2=fgetc(fp2);
- while(ch2!=EOF)
- {
- ch3[i]=ch2;
- i++;
- ch2=fgetc(fp2);
- } //将ch2的值存入数组ch3。
- ch3[i]='\0';
- for(j=0;ch3[j];j++)
- {
- printf("%c",ch3[j]);
- }
- for(i=0;ch3[i+1];i++)//////////////////////ch3[j]换成ch3[i+1],用ch3[j],i=1时j已经循环到‘\0’了ch3[j]已经是0,退出循环。
- {
- for(j=i+1;ch3[j];j++)
- {
- if(ch3[i]>ch3[j])
- {
- temp=ch3[i];
- ch3[i]=ch3[j];
- ch3[j]=temp;
- }
- }
- } //冒泡法排序。
- for(i=0;ch3[i];i++)///////////////////ch3[j]换成ch3[i],和上面说明一样ch3[j]已经是0,直接啥也没写。
- {
- fputc(ch3[i],fp3);///////////////ch3[j]换成ch3[i]ch3[j]就是0,只在c.txt里写了一个'\0'
- }
- fclose (fp1);
- fclose (fp2);
- fclose (fp3);
- getchar();
- }
复制代码
|
|