当前位置: 首页 > news >正文

C语言:文件复制

文本文件复制:

#include<stdio.h>int main()
{FILE* pFile1 = NULL;FILE* pFile2 = NULL;fopen_s(&pFile1,"D:\\11111.txt","r");fopen_s(&pFile2,"D:\\222.txt", "w");char c;while((c=fgetc(pFile1))!=EOF){fputc(c,pFile2);}fclose(pFile1);fclose(pFile2);return 0;
}

二进制文件复制:

#include<stdio.h>int main()
{FILE* pfile1 = NULL;FILE* pfile2 = NULL;fopen_s(&pfile1, "C:\\Users\\ljw\\Desktop\\WIN_20231103_17_32_35_Pro.jpg", "rb");//一张图片fopen_s(&pfile2, "d:\\abc.jpg", "wb");char buf[1024];while (fread(buf, 1, 1024, pfile1) > 0)//返回值>0代表读取成功{fwrite(buf, 1, 1024, pfile2);}fclose(pfile1);fclose(pfile2);return 0;
}

但在二进制文件复制这里我们会发现一个问题:那就是复制过来文件大小的大于原文件的大小。

#include<stdio.h>int main()
{FILE* pfile1 = NULL;FILE* pfile2 = NULL;fopen_s(&pfile1, "C:\\Users\\ljw\\Desktop\\WIN_20231103_17_32_35_Pro.jpg", "rb");fopen_s(&pfile2, "d:\\abc.jpg", "wb");char buf[1024];size_t nread,nwrite;while ((nread=fread(buf, 1, 1024, pfile1)) > 0){nwrite=fwrite(buf, 1, 1024, pfile2);printf("%d %d\n", nread, nwrite);//发现最后一次读取不足1024,但写入仍为1024,因此造成//要解决此问题只需将nwrite=fwrite(buf, 1, 1024, pfile2);中的1024改为nread即可}fclose(pfile1);fclose(pfile2);return 0;
}

http://www.lryc.cn/news/430493.html

相关文章:

  • 谈谈建筑项目管理:类型、流程和工具
  • 【Vue】生命周期函数
  • C++系列-文件操作
  • ES6解构赋值详解;全面掌握:JavaScript解构赋值的终极指南
  • 2-73 基于matlab的weber能量法求解齿轮时变啮合刚度的程序
  • [C++]set和map的介绍及使用
  • 【MySQL】MySQL学习笔记(持续更新)
  • ArcGIS如何将投影坐标系转回为地理坐标系
  • Parallels Desktop 19 for Mac 安装虚拟机需要激活吗
  • wps题注为表格或图片编号
  • 集成测试怎么做?
  • java mybatis 使用work id
  • MySQL 的子查询(Subquery)
  • 后端Web之数据库(以MySQL为例)
  • 委托发布 | 进迭时空联合移动云能力中心实现业界首个RISC-V IO虚拟化方案
  • 3-Electron打开新窗口,并跳转到指定的路由
  • comfyUI和SD webUI都有哪些差别呢?
  • MySql中常用的sql语句大全(工作常用篇)
  • React+Vis.js(03):vis.js设置节点形状
  • Pod和Deployment
  • 7. 数据结构—二叉树(链式存储)
  • AScript 的UI asui模板的导入
  • Linux shell编程学习笔记75:sed命令——沧海横流任我行(下)
  • 探索Scratch中的物理世界:碰撞与重力的编程之旅
  • 大模型重塑就医体验:医联MedGPT助力健康中国建设
  • TOMCAT全解
  • UDP+TCP
  • 分页查询面试记录和面试详情
  • Oracle 同义词SYNONYM 的实战使用
  • 实验11-1-8 查找子串