c语言中文件拷贝的库函数,C语言实现拷贝文件操作【fread和fwrite函数】

#includevoid menu()

{

printf("===============================\n");

printf("1、拷贝文件\n");

printf("2、清屏\n");

printf("3、退出\n");

printf("===============================\n");

}

void copyfile()

{

printf("请输入源文件:");

char srcfile[512] = { 0 };

scanf("%s", srcfile);

printf("请输入目标文件:");

char dstfile[512] = { 0 };

scanf("%s", dstfile);

// 打开 和 创建文件

FILE *rfp = fopen(srcfile, "rb+");

if (rfp == NULL)

{

printf("fopen rfp error\n");

return;

}

FILE *wfp = fopen(dstfile, "wb+");

if (rfp == NULL)

{

printf("fopen wfp error\n");

return;

}

//存储读取文件的内容

char tmp[1000] = { 0 };

int ret1 = 0,ret2 = 0;

// 循环读取文件

while (!feof(rfp))

{

ret1 = fread(tmp, 1,1000, rfp); // 块大小1字节 , 块数目为 1024 , 返回值 是 读取的块数目

printf("已经读取%d \n", ret1);

if (ret1 == 0)

{

break;

}

ret2 = fwrite(tmp, 1, 1000, wfp);

printf("已经写入%d \n", ret2); //最后一次,虽然数据不够1000,但是申请的buf空间是1000

ret1 = 0;

ret2 = 0;

}

// 关闭文件

if (rfp != NULL)

{

fclose(rfp);

rfp = NULL;

}

if (wfp != NULL)

{

fclose(wfp);

wfp = NULL;

}

}

int main()

{

int cmd;

while (1)

{

menu();

printf("cmd:");

scanf("%d", &cmd);

switch (cmd)

{

case 1:

copyfile();

break;

case 2:

system("cls");

break;

case 3:

exit(0);

break;

default:

break;

}

}

return 0;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值