C语言:将磁盘文件A和B中各保存一段字符,要求将两个信息合并输出到新文件C中去。

#include<stdio.h>#include<stdlib.h>voidmain(){FILE*fp1,*fp2,*fp3;charcontent1[10],con... #include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp1,*fp2,*fp3;
char content1[10],content2[10],content3[100],ch;
int i1,i2,i3;

if((fp1=fopen("A","w"))==NULL)
{printf("cannot open fileA\n");
exit(0);
}
printf("fileA:\n");
gets(content1);
for(i1=0;content1[i1]!='!';i1++)
fputc(content1[i1],fp1);
fclose(fp1);

if((fp2=fopen("B","w"))==NULL)
{printf("cannot open fileB\n");
exit(0);
}
printf("fileB:\n");
gets(content2);
for(i2=0;content2[i2]!='!';i2++)
fputc(content2[i2],fp2);
fclose(fp2);

if((fp3=fopen("C","w"))==NULL)
{printf("cannot open fileC\n");
exit(0);
}
fp1=fopen("A","r");
while(!feof(fp1))fputc(fgetc(fp1),fp3);
fclose(fp1);
fclose(fp3);

fp3=fopen("C","a");
fp2=fopen("B","r");
while(!feof(fp2))fputc(fgetc(fp2),fp3);
fclose(fp2);
fclose(fp3);

printf("fileC:\n");
fp3=fopen("C","r");
for(i3=0;(ch=fgetc(fp3))!=EOF;i3++)
{
content3[i3]=ch;
putchar(content3[i3]);
}
printf("\n");
fclose(fp3);
}
编译通过了,运行时只显示了A中的信息,大虾帮帮忙啊,我用的是追加方式复制B文件啊,为甚么显示不出来呢。
展开
 我来答
cqhaotian
2011-05-19
知道答主
回答量:5
采纳率:0%
帮助的人:3.7万
展开全部
你重新打开的文件,文件指针在开头,你一追加的方式打开,要是想把文件2的内容追加到文件1的后面,你必须在文件3中把指针指到文件的末尾,然后就会在文件1的末尾进行添加文件2的内容
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式