C语言编程实现链接两个文本文件的问题

��编一段程序,将文本文件1的内容链接到文本文件2的末尾,写了一个函数,为什么最后运行时文本文件2却成了和文本文件1一个样子,变成文件复制的功... ��编一段程序,将文本文件1的内容链接到文本文件2的末尾,写了一个函数,为什么最后运行时文本文件2却成了和文本文件1一个样子,变成文件复制的功能了?

函数主要部分如下:

void fconnect()
{
FILE *fp1, *fp2;
char filename1[20], filename2[20], ch;
printf("Input the file name you want to copy:\n");
scanf("%s", filename1);
if ((fp1 = fopen (filename1, "r")) == NULL)
{
printf("File 1 doesn't exist!");
exit(0);
}
printf("Input the file name you want to store:\n");
scanf("%s", filename2);
if ((fp2 = fopen (filename2, "w")) == NULL)
{
printf("File 2 doesn't exist!");
exit(0);
}
fseek (fp2, 0L, 2);
while (!feof(fp1))
fputc (fgetc (fp1), fp2);
fclose (fp1);
fclose (fp2);
}

��程序本意是将fp1指向的文件内容链接到fp2所指的文件中,首先通过fseek (fp2, 0L, 2)让指针指向fp2文件内容的末尾,然后再通过循环逐个从fp1中复制字符进fp2,理论上是接着fp2文件末尾复制的,但是最后fp2的文件内容却变成了和fp1完全相同,可以推断复制是从fp2文件头开始执行的,明明我已经让fp2指针指向文件尾了,但是为什么还是会这样?到底该怎么改才能实现?不要通过第三个文件来处理,只用这两个文件该怎么做?
不要从网上复制答案来,我说了只要用这两个文件,不要借助第三个文件,直接将fp1接入fp2后面
展开
 我来答
相思丶猫2C
2010-06-09 · TA获得超过1198个赞
知道小有建树答主
回答量:1432
采纳率:50%
帮助的人:960万
展开全部
以a+方式打开文件2。如果文件2不存在,则创建一个文件,如果文件2存在,则文件1的数据追加到文件2的后面,于是就可以实现你说的了。你试试?只有亲手试过才会记忆深刻。
伤倏臀w
2010-06-09 · TA获得超过1115个赞
知道大有可为答主
回答量:864
采纳率:60%
帮助的人:609万
展开全部
#include <stdio.h>
#include <process.h>
void main()
{
char ch;
FILE *fp1,*fp2,*fp3;
if((fp1=fopen("C:\\Documents and Settings\\Administrator\\桌面\\1.txt","r"))==NULL)
{printf("打开文件1.txt失败!\n");
exit(1);
}
else
printf("打开文件1.txt成功!\n");
if((fp2=fopen("C:\\Documents and Settings\\Administrator\\桌面\\2.txt","r"))==NULL)
{printf("打开文件2.txt失败!\n");
exit(3);
}
else
printf("打开文件2.txt成功!\n");
if((fp3=fopen("C:\\Documents and Settings\\Administrator\\桌面\\3.txt","a"))==NULL)
{printf("打开文件3.txt失败!\n");
exit(3);
}
else
printf("打开文件3.txt成功!\n");
while((ch=fgetc(fp1))!=EOF)
fputc(ch,fp3);
while((ch=fgetc(fp2))!=EOF)
fputc(ch,fp3);
fclose(fp1);
fclose(fp2);
fclose(fp3);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式