一道简单c语言题,求高人指教!!
编写将两个有序整数文件合并复制一个有序证书文件的程序,嘉定那个证书文件中的整数是从小到大排列的。要求新文件中的整数也是从小到大排列并且互不相同。我的程序:#include...
编写将两个有序整数文件合并复制一个有序证书文件的程序,嘉定那个证书文件中的整数是从小到大排列的。要求新文件中的整数也是从小到大排列并且互不相同。
我的程序:
#include "stdio.h"
void main()
{ FILE *fp1,*fp2,*fp3;
char fname1[40],fname2[40],fname3[40];
int p1,p2,p3,i;
printf("请输入两个源文件名\n");
scanf("%s%s",fname1,fname2);
printf("请输入目标文件名\n");
scanf("%s",fname3);
fp3=fopen(fname3,"wb+");
if ((fp1=fopen(fname1,"rb"))==NULL)
{printf("文件%s打不开!",fname1);
return;}
if ((fp2=fopen(fname2,"rb"))==NULL)
{printf("文件%s打不开!",fname2);
return;}
while(fp1!=NULL||fp2!=NULL)//?
{fscanf(fp1,"%d",&p1);
fscanf(fp2,"%d",&p2);//直接*fp2???
if(fp2==NULL||p1<p2&&fp1!=NULL)//?
{fprintf(fp3,"%d",p1);
fp1++;fp3++;}
else if(p1==p2)
{fprintf(fp3,"%d",p2);
fp1++;fp2++;fp3++;}
else {fprintf(fp3,"%d",p2);
fp2++;fp3++;}
fclose(fp1);
fclose(fp2);
fclose(fp3);
for(i=0;(fp3+i)!=NULL;i++)
printf("%d",*(fp3+i));
}
显示遇到意外的文件结尾是什么意思啊? 展开
我的程序:
#include "stdio.h"
void main()
{ FILE *fp1,*fp2,*fp3;
char fname1[40],fname2[40],fname3[40];
int p1,p2,p3,i;
printf("请输入两个源文件名\n");
scanf("%s%s",fname1,fname2);
printf("请输入目标文件名\n");
scanf("%s",fname3);
fp3=fopen(fname3,"wb+");
if ((fp1=fopen(fname1,"rb"))==NULL)
{printf("文件%s打不开!",fname1);
return;}
if ((fp2=fopen(fname2,"rb"))==NULL)
{printf("文件%s打不开!",fname2);
return;}
while(fp1!=NULL||fp2!=NULL)//?
{fscanf(fp1,"%d",&p1);
fscanf(fp2,"%d",&p2);//直接*fp2???
if(fp2==NULL||p1<p2&&fp1!=NULL)//?
{fprintf(fp3,"%d",p1);
fp1++;fp3++;}
else if(p1==p2)
{fprintf(fp3,"%d",p2);
fp1++;fp2++;fp3++;}
else {fprintf(fp3,"%d",p2);
fp2++;fp3++;}
fclose(fp1);
fclose(fp2);
fclose(fp3);
for(i=0;(fp3+i)!=NULL;i++)
printf("%d",*(fp3+i));
}
显示遇到意外的文件结尾是什么意思啊? 展开
3个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询