有两个磁盘文件A和B,各放一行字母,今要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件中去
- 代码如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
int i,j,n,i1;
char c[100],t,ch;
if((fp=fopen("A.dat","r"))==NULL){
printf("cannot open file");
exit(0);
}
printf("file a:\n");
for(i=0;(ch=fgetc(fp))!=EOF;i++){
c[i]=ch;
putchar(c[i]);
}
fclose(fp);
i1=i;
if((fp=fopen("B.dat","r"))==NULL){
printf("cannot open file");
exit(0);
}
printf("\nfile B:\n");
for(i=i1;(ch=fgetc(fp))!=EOF;i++){
c[i]=ch;
putchar(c[i]);
}
fclose(fp);
n=i;
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(c[i]>c[j]){
t=c[i];c[i]=c[j];c[j]=t;
}
}
}
printf("\nfile C :\n");
fp=fopen("c1","w");
for(i=0;i<n;i++){
fputc(c[i],fp);
putchar(c[i]);
}
printf("\n");
fclose(fp);
return 0;
}
运行结果如下:
file a:
fileB: