# include <stdio.h>
# include <stdlib.h>
FILE *write(char name)
{
char ch;
FILE *fp;
if((fp=fopen("name","w"))==NULL) //fopen的第一个参数是字符串,你的这种表达,打开的是名称是“name”的文件,和你的本意有差别吧
{
printf("wrong");
exit(0);
}
ch=getchar(); //getchar是从屏幕读入数据
while(ch!='#') //什么意思以这个#结尾的文件
{
fputc(ch,fp); //把读入的数据写进文件
putchar(ch);
ch=getchar();
}
fclose(fp);
return(fp);
}
void main()
{
int i=0,j,t;
char a[20];
char ch1,ch2,ch;
FILE *f;
char name1='A';
char name2='B';
do //获取文件A的数据
{
ch1=fgetc(write(name1));
a[i]=ch1;
i++;
}while(ch1!=EOF);
do //获取文件B的数据
{
ch2=fgetc(write(name2));
a[i]=ch2;
i++;
}while(ch2!=EOF);
a[i]='\0';
for(i=0;a[i]!='\0';i++) //排序
for(j=i+1;a[j]!='\0';j++)
if(a[i]>=a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
if((f=fopen("C","w"))==NULL)
{
printf("wrong");
exit(0);
}
i=0;
for(ch=a[i];a[i]!='\0';i++)
{
fputc(ch,f);
putchar(ch);
}
fclose(f);
}
楼主获取文件A和B的数据的写法也太麻烦了吧,直接getchar,fputc不就可以了,写成这样的函数似乎没什么意义啊!
# include <stdlib.h>
FILE *write(char name)
{
char ch;
FILE *fp;
if((fp=fopen("name","w"))==NULL) //fopen的第一个参数是字符串,你的这种表达,打开的是名称是“name”的文件,和你的本意有差别吧
{
printf("wrong");
exit(0);
}
ch=getchar(); //getchar是从屏幕读入数据
while(ch!='#') //什么意思以这个#结尾的文件
{
fputc(ch,fp); //把读入的数据写进文件
putchar(ch);
ch=getchar();
}
fclose(fp);
return(fp);
}
void main()
{
int i=0,j,t;
char a[20];
char ch1,ch2,ch;
FILE *f;
char name1='A';
char name2='B';
do //获取文件A的数据
{
ch1=fgetc(write(name1));
a[i]=ch1;
i++;
}while(ch1!=EOF);
do //获取文件B的数据
{
ch2=fgetc(write(name2));
a[i]=ch2;
i++;
}while(ch2!=EOF);
a[i]='\0';
for(i=0;a[i]!='\0';i++) //排序
for(j=i+1;a[j]!='\0';j++)
if(a[i]>=a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
if((f=fopen("C","w"))==NULL)
{
printf("wrong");
exit(0);
}
i=0;
for(ch=a[i];a[i]!='\0';i++)
{
fputc(ch,f);
putchar(ch);
}
fclose(f);
}
楼主获取文件A和B的数据的写法也太麻烦了吧,直接getchar,fputc不就可以了,写成这样的函数似乎没什么意义啊!