两个文件A和B,各存放一行字母,把这两个文件中的信息合并(按字母顺序排列),输出到新文件C中


代码如下:

				
#include<stdio.h>
#include<stdlib.h>
#define SIZE 300
int num;  //定义全局变量
char a[SIZE];

int main()
{
     void view();//声明被调函数
     void save();
     view();
     save();
     return 0;
}

void view()//定义函数view,查看A,B文件数据并导出
{
     FILE *fp;
     char ch;
     int i=0;
     if((fp=fopen("A.txt","r"))==NULL)
     {
         printf("cannot open file A\n");
         exit(0);
     }
     printf("file A contents are:\n");
     while((ch=fgetc(fp))!=EOF)
     {
         putchar(ch);//在屏幕上显示文件A的内容
         a[i]=ch;
         i++;
     }
     if((fp=fopen("B.txt","r"))==NULL)
     {
         printf("cannot open file B\n");
         exit(0);
     }
     printf("\n");
     printf("file B contents are:\n");
     while((ch=fgetc(fp))!=EOF)
     {
         putchar(ch);//在屏幕上显示文件B的内容
         a[i]=ch;
         i++;
     }
     num=i;
     printf("\n");

}

void save()//定义函数save,向文件C中写入数据
{
     FILE *fp;
     int i,j;
     char temp;
     if((fp=fopen("C.txt","w"))==NULL)
     {
         printf("cannot open file C\n");
         exit(0);
     }
     for(i=0;i<num;i++)//给字母排序
     {
         for(j=i+1;j<num;j++)
         {
             if(a[i]>a[j])
             {
                 temp=a[i];
                 a[i]=a[j];
                 a[j]=temp;
             }
         }
     }
     printf("file C contents are:\n");
     for(i=0;i<num;i++)
     {    
         fputc(a[i],fp);//将文件A,B的数据写入文件C中
         putchar(a[i]);//在屏幕上显示文件C的内容
     }
     printf("\n");
}




联系我们 | 友情链接