将'文件1'的内容复制到'文件2'中

首先,先准备好要复制的文件,将其放在源程序共同的目录下。

如:文件名为:filecpy.c

内容如下:

#include<stdio.h>
void main(void)
{
	printf("这是一个将要被复制的文件\n");
}




其次,写代码。如下:

https://code.csdn.net/snippets/146748#include<stdio.h>


void main(void)
{
//1、定义文件指针、变量等
    FILE *pf1 ;    
    FILE *pf2 ;
    char ch ;


//2、打开文件
    pf1 = fopen("filecpy.c","rt"); //以“读--text”的格式打开“要被复制的文件”,并将函数返回值赋值给对应的文件指针变量
    pf2 = fopen("filecarrier.c","wt"); //以“写--text”的格式打开“目标载体文件”,并将函数返回值赋值给对应的文件指针变量


//3、以字符为单位进行复制文件
    while(1)
    {
        ch = fgetc(pf1);    //从文件“filecpy.c”的内部指针‘pf1’处获取一个字符,并赋值给 ch ,文件指针pf1指向该文件中的下一个字符的起始位置
        if(feof(pf1))    //判断,如果文件指针是否已经指向了文件的结尾处,若是,则结束复制(文件复制完成)
        {
            break;    //跳出while(1)循环体
        }
        fputc(ch , pf2);    //将字符变量'ch'的内容写到文件指针pf2所指向的位置,同时pf2指向给文件中下一个字符的起始位置
    }
 

//4、关闭文件  
    fclose(pf1);    //关闭文件"filecpy.c"
    fclose(pf2);    //关闭文件"filecarrier.c"

}



代码执行结果:

该文件夹下多了一个名为 filecarrier.c 的文件。(在程序执行的过程中产生的,并且已经将 filecpy.c 的内女复制到了该文件中),如下:

文件 filecarrier.c

#include<stdio.h>
void main(void)
{
    printf("这是一个将要被复制的文件\n");
}


注意:文件一旦关闭,再次打开此文件时,文件的指针是指向该文件内部的起始的位置


/**************************************************************************************************
 *	功能:文件复制。将文件自身复制到当前文件夹的子文件夹下的.txt文档中保存。
 *	目的:熟悉文件复制的过程,掌握函数 fgetc();fputc();的具体使用方法
 **************************************************************************************************/
#include<stdio.h>
void main(void)
{
//1、定义文件指针和变量
	FILE *pf1 ;
	FILE *pf2 ;
	char ch ;

//2、打开文件
	pf1 = fopen("cpyself.c","rt");
	pf2 = fopen("./copyto/targetfile.txt","wt"); //将文件复制到本文件夹下的子文件夹内部的文件中

//3、复制文件
	while(1)
	{
		ch = fgetc(pf1); //从'文件1'中复制一个字符给 ch 
		if(feof(pf1))	//判断是否到达文件的结尾,若是:跳出循环,结束复制
		{
			break;
		}
		fputc(ch , pf2); //将 ch 中的文件复制到'文件2'中文件指针pf2所指向的位置,之后pf2指向下一个字节的起始位置
	}
	
//4、关闭文件
	fclose(pf1);
	fclose(pf2);

}
 


在程序执行之前,目标文件夹下为空,即还未得到复制后的"targetfile.txt"文件,如下图:

程序执行后,目标文件夹下生成了.txt格式的文件副本,如下图:

打开targetfile.txt文件,你会发现,我们的程序执行后就将原 .c 文件的内容与分不动的复制到了此文件中,结果如下图:


//若想将文件复制到其他文件夹下,只需将第2步“打开文件”中的
//打开文件
	pf1 = fopen("cpyself.c","rt");
	pf2 = fopen("./copyto/targetfile.txt","wt"); //将文件复制到本文件夹下的子文件夹内部的文件中
//改变路径即可:(以UBUNTU中复制到 "media盘" 下的 "IFLE文件夹"下的"targetfile.txt"文件中为例)
	pf1 = fopen("cpyself.c","rt");	//要被复制的文件的 "/地址/文件名"
	pf2 = fopen("/media/FILE/targetfile.txt","wt"); //复制到目标文件: "/地址/文件名"

实质:该变文件打开和输出的路径。

结果如下:

执行程序前,如下:


执行程序后,如下:

打开此文件察看结果,如下:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值