不显示数据—感觉是没调用函数(求大神)
假设有两个词典文件8-1-dict1.txt 和8-1-dict2.txt,各自存放了一些英文词条。存放格式为按行存放,每一行一个词条,并已按照英文字母的顺序排列好了序。请编写一个程序,将这两个词典文件的内容进行合并,并生成一个新的词典文件8-1-dict3.xtx 。
要求:(1)在新的词典文件中,各个词条仍然是有序排列的。
(2)如果一个词条既出现在8-1-dict1.txt中,也出现在8-1-dict2.txt 中,它们在新文件中只能出现一次。
8-1-dict1.txt:
apple
banana
grape
peach
8-1-dict2.txt:
apple
fish
grape
meat
#include <stdio.h>
#include <string.h>
int main (void)
{
FILE *fp1,*fp2,*fp3;
FILE * re(FILE *fp,int n);
char ch[10];
//char file[50];
//printf("input file 's name:\n");
//gets(file);
fp3=fopen("8-1-dict3.txt","w+");
fp1=fopen("8-1-dict1.txt","r");
fp2=fopen("8-1-dict2.txt","r");
fgets(ch,10,fp1);
fputs(ch,fp3);
//printf("%s",ch);
while(1)
{
fgets(ch,10,fp1);
fputs(ch,fp3);
//printf("%s",ch);
if feof(fp1)
break;
}
fputs("\n",fp3);
/*printf("\n");
fflush(stdin);
fgets(ch,10,fp2);
fputs(ch,fp3);
printf("%s",ch);*/
while(1)
{
fgets(ch,10,fp2);
fputs(ch,fp3);
//printf("%s",ch);
if feof(fp2)
break;
}
fp3=re(fp3,8);
fclose(fp1);
fclose(fp2);
}
FILE * re(FILE *fp,int n)
{
char ch1[10];
char ch2[10];
int i=0;
int j=0;
for (i=0;i<n;i++)
{
for (j=i+1;j<n;j++)
{
fgets(ch1,10,fp);
//printf("%s",ch1);
fgets(ch2,10,fp);
if(strcmp(ch1,ch2)>0)
{
fputs(ch1,fp);
fputs(ch2,fp);
}
if(strcmp(ch1,ch2)<0)
{
fputs(ch2,fp);
fputs(ch2,fp);
}
if(strcmp(ch1,ch2)==0) fputs(ch1,fp);
if (feof(fp))
break;
}
}
return fp;
}