C语言文件连接DEMO

【FROM C语言实战500例  ---39例】


#include 
#include 
#include 
/*去掉程序中的warning information*/
#pragma warning(disable:4996)
/*输出文件内容*/
void OutputFile(FILE *fp)
{
	char ch;
	while((ch=fgetc(fp))!=EOF)
	{
		putchar(ch);
	}
	_getch();
}

/*文件连接函数*/
void JoinFile(char *sfilename,char *dfilename)
{
	char ch;
	FILE *fp1,*fp2;
	int err;
	/*进行输入重定向*/
	if ((err=freopen_s(&fp1,sfilename,"r",stdin))!=0)
	{
		printf("cannot open the file: %s\n",sfilename);
		return;
	}
	/*进行输出重定向*/
	if ((err=freopen_s(&fp2,dfilename,"a",stdout))!=0)
	{
		printf("cannot open the file: %s\n",dfilename);
		return 0;
	}
	/*进行文件的读写*/
	while((ch=getchar())!=EOF)
	{
		putchar(ch);
	}
	fclose(fp1);
	fclose(fp2);
	return;
}

int main(void)
{
	char sfilename[20];
	char dfilename[20];
	FILE *sfp,*dfp;
	int err;
	system("cls");
	printf("**********************************************\n");
	printf("|  The program will join a file to another!  |\n");
	printf("|You can open the object file to verify this!|\n");
	printf("**********************************************\n");
	/*得到要被连接的文件名*/
	printf("\nPlease input source filename:\n");
	gets(sfilename);

	/*得到要连接到的文件的文件名*/
	printf("Please input destination filename:\n");
	gets(dfilename);

	/*输出连接前文件的内容*/
	if(((err=fopen_s(&sfp,sfilename,"r"))!=0)||((err=fopen_s(&dfp,dfilename,"r"))!=0))
		return 0;
	printf("\nThe text of the file %s before joining :\n",sfilename);
	OutputFile(sfp);
	printf("\nThe text of the file %s before joining :\n",dfilename);
	OutputFile(dfp);
	printf("\nPlease open the file %s to verify the text!\n",dfilename);
	_getch(); /* read a single character from the console without echoing the character*/
	/*连接两个文件*/
	JoinFile(sfilename,dfilename);
	fclose(sfp);
	fclose(dfp);
	system("pause");
	return 0;
}


你可能感兴趣的:(c,C,文件,文件连接,输入函数,Basic,knowledge,of,C)