C语言:将磁盘文件A和B中各保存一段字符,要求将两个信息合并输出到新文件C中去。
#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文件啊,为甚么显示不出来呢。
答案:你重新打开的文件,文件指针在开头,你一追加的方式打开,要是想把文件2的内容追加到文件1的后面,你必须在文件3中把指针指到文件的末尾,然后就会在文件1的末尾进行添加文件2的内容
上一个:高手帮忙做下C语言的题目~!万分感谢!!
下一个:谁给些个安徽省计算机c语言二级模拟或者真试题