3049 - 【设计型】第13章:文件操作 13-5

文件追加。根据提示从键盘上输入一个已经存在的文本文件的完整文件名,再输入另一个已经存在的文本文件的完整文件名,然后将第一个文本文件的内容追加到第二个文本文件的原内容之后,利用文本编辑软件查看文件内容,验证程序执行结果。

题目输入

输入文件名;

第一个输入原文件名;

第二个输入追加的文件名;

题目输出

如果追加成功,显示"Append succeed!"

失败了显示"Append failed!”

输入/输出样例

题目输入

a.txt
b.txt

题目输出

Append failed!

C语言解答

#include<stdio.h>
#define N 80 
int appendfile (const char *srcName,const char *dstName);
int main()  
{
char srcFilename[N]	;
char dstFilename[N];
scanf("%s",srcFilename );
scanf("%s",dstFilename);
if(appendfile(srcFilename,dstFilename)) printf("Append succeed!\n");
else 
printf("Append failed!\n");
return 0;
}
int appendfile (const char *srcName,const char *dstName)
{
	
	FILE *fpSrc=NULL,*fpDst=NULL;
	int ch,rval=1;
	if((fpSrc=fopen(srcName,"r"))==NULL) goto ERROR;
	if((fpDst=fopen(dstName,"w"))==NULL) goto ERROR;
	while((ch=fgetc(fpSrc))!=EOF)
	{
	if(fputc(ch,fpDst)==EOF) goto ERROR;	
	}
	fflush(fpDst);
	goto EXIT;
	ERROR:
		rval=0;
		EXIT:
			if(fpSrc!=NULL)fclose(fpSrc);
			if(fpDst!=NULL)fclose(fpDst);
			return rval;
}

C++解答

#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
    char a[100]={},b[100]={};
    cin >> a >> b;
    FILE *fa,*fb;
    if ((fa = fopen(a,"r")) == NULL)
    {
        printf("Append failed!");
        return 0;
    }
    if ((fb = fopen(b,"a")) == NULL)
    {
        printf("Append failed!");
        return 0;
    }
    char tmp;
    while (!feof(fa))
    {
        tmp = fgetc(fa);
        fputc(tmp, fb);
    }
    cout << "Append succeed!";
    return 0;
}
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题