文件的复制是常用的功能 要求写一段代码 让用户输入要复制的文件以及新建的文件 然 后对文件进行复制 能够复制的文件包括文本文件和二进制文件 你可以复制 1G 的电影 也可以复制 1Byte 的 txt 文档 实现文件复制的主要思路是 开辟一个缓冲区 不断从原文件中读取内容到缓冲区 每读取 完一次就将缓冲区中的内容写入到新建的文件 直到把原文件的内容读取完 这里有两个关键的问题需要解决 1 开辟多大的缓冲区合适 缓冲区过小会造成读写次数的增加 过大也不能明显提高效率 目前大部分磁盘的扇区都是 4K 对齐的 如果读写的数据不是 4K 的整数倍 就会跨扇区读 取 降低效率 所以我们开辟 4K 的缓冲区 2 缓冲区中的数据是没有结束标志的 如果缓冲区填充不满 如何确定写入的字节数 最 好的办法就是每次读取都能返回读取到的字节数 fread 的原型为 size t fread void ptr size t size size t count FILE fp 它返回成功读写的块数 该值小于等于 count 如果我们让参数 size 等于 1 那么返回的 就是读取的字节数 注意 fopen 一定要以二进制的形式打开文件 不能以文本形式打开 否则系统会对文件 进行一些处理 如果是文本文件 像 txt 等 可能没有问题 但如果是其他格式的文件 像 mp4 rmvb jpg 等 复制后就会出错 无法读取 代码实现 1 include 2 include 3 4 int copyFile char fileRead char fileWrite 5 6 int main 7 char fileRead 100 要复制的文件名 8 char fileWrite 100 复制后的文件名 9 10 获取用户输入 11 printf 要复制的文件 12 scanf s fileRead 13 printf 将文件复制到 14 scanf s fileWrite 15 16 进行复制操作 17 if copyFile fileRead fileWrite 18 printf 恭喜你 文件复制成功 n 19 else 20 printf 文件复制失败 n 21 22 23 return 0 24 25 26 27 文件复制函数 28 paramfileRead要复制的文件 29 paramfileWrite复制后文件的保存路径 30 returnint1 复制成功 2 复制失败 31 32 int copyFile char fileRead char fileWrite 33 FILE fpRead 指向要复制的文件 34 FILE fpWrite 指向复制后的文件 35 int bufferLen 1024 4 缓冲区长度 36 char buffer char malloc bufferLen 开辟缓存 37 int readCount 实际读取的字节数 38 39 if fpRead fopen fileRead rb NULL fpWrite fopen fileWrite wb NULL 40 printf Cannot open file press any key to exit n 41 getch 42 exit 1 43 44 45 不断从 fileRead 读取内容 放在缓冲区 再将缓冲区的内容写入 fileWrite 46 while readCount fread buffer 1 bufferLen fpRead 0 47 fwrite buffer readCount 1 fpWrite 48 49 50 free buffer 51 fclose fpRead 52 fclose fpWrite 53 54 return 1 55 运行结果 要复制的文件 d 1 mp4 将文件复制到 d 2 mp4 恭喜你 文件复制成功 如果文件不存在 会给出提示 并终止程序 要复制的文件 d 123 mp4 将文件复制到 d 333 mp4 d cyuyan txt No such file or directory 第 46 行是文件复制的核心代码 通过 fread 函数 每次从 fileRead 文件中读取 bufferLen 个字节 放到缓冲区 再通过 fwrite 函数将缓冲区的内容写入 fileWrite 文件 正常情况下 每次会读取 bufferLen 个字节 即 readCount bufferLen 如果文件大小不 足 bufferLen 个字节 或者读取到文件末尾 实际读取到的字节就会小于 bufferLen 即 readCount bufferLen 所以通过 fwrite 写入文件时 应该以 readCount 为准

展开阅读全文

c语言中文网pdf免费下载,C语言中文网VIP教程11.9.pdf相关推荐

  1. c语言通讯录论文免费下载,C语言通讯录程序设计.doc

    >软]<程序设计综合实习[ 告实 习 报 学号 名姓 级班 指导教师 *******大学 月9年2016. 课程设计题目:个人通讯录管理系统 一.需求分析 个人通讯录管理系统的制作,为了实 ...

  2. C语言与程序设计免费下载,C语言程序设计课件WORD版

    用户满意的答案: 水在4°C时密度最大,低于4°C后,便不再遵循 热胀冷缩的规律,而是反常膨胀,温度降低,体积增 大 ... 秦皇河夏韵 夏初,我顺朝阳的指引而来,骑车单行. 从秦皇河的北端黄河五路段 ...

  3. WooCommerce最新2.3.10汉化简体中文版语言包mo免费下载

    一.关于WooCommerce 近日接到一个订单,客户要求重点展示.附带在线销售少量商品,于是决定选用wordpress:然后在13个最靠谱的wp电子商务插件中,只有WooCommerce支持支付宝, ...

  4. Sandboxie沙盘3.38Final多国语言破解版免费下载

    沙盘英文名sandbox,也叫沙箱,顾名思义可以看做是一种容器,里面所做的一切都可以推倒重来,军事上常用沙盘来进行一些战争区域的地形模拟,这个你见过吧?不用了可以把沙子推平重来. 我们所说的沙盘是一种 ...

  5. python基础教程第三版电子版百度云-《python基础教程第三版》高清版PDF免费下载...

    下载地址1:http://t.cn/EGxO1sW Python基础教程 第3版Python简明教程书籍 Python编程从入门到实践 灵程序设计丛书 <python基础教程第三版>高清版 ...

  6. python经典100例答案pdf-Python 入门 100 案例,PDF免费下载

    原标题:Python 入门 100 案例,PDF免费下载 大家好,我是振哥.在过去一年多时间,我先后打磨了几个Python类开源教程.所有教程力求通俗易懂,有趣,并结合一个一个的小例子.小案例讲解,让 ...

  7. python入门教程pdf-《python基础教程(第3版)》高清版PDF免费下载

    下载地址: 备用地址: Python基础教程 第3版Python简明教程书籍 Python编程从入门到实践 灵程序设计丛书 <python基础教程第三版>高清版PDF免费下载 <py ...

  8. LINUX设备驱动程序第三版.pdf,linux设备驱动程序第3版.pdf免费下载链接,学习资源下载

    LINUX设备驱动程序第三版.pdf免费下载链接(.pdf书籍的优点是便于直接在电脑中保存有电脑就可以阅读,如果觉得这本书给你提供到了很大的帮助,可以去书店补一本纸质版) 资源保存在腾讯微云上,下载不 ...

  9. 《数据结构 C++ 语言描述》电子书下载 -(百度网盘 高清版PDF格式)

    作者:William Ford,William Topp [译者] 刘卫东 沉官林 出版日期:1999-9-1 出版社:清华出版社 页数:708 ISBN:7-302-03160-6 文件格式:PDF ...

  10. c语言程序设计资料书下载,C语言编程魔法书:基于C11标准 (陈轶著) 完整pdf高清版[20MB]...

    C语言编程魔法书:基于C11标准主要讲解C11标准的语法内容,并且从整个编译.连接到加载过程都会涉及.同时在后会分别介绍GCC编译器与Clang编译器的C语言语法扩展.通过阅读本书,读者能够完全掌握新 ...

最新文章

  1. Python的22个编程技巧,Pick一下?你又知道多少呢……
  2. Exchange2013/2016下通过RDB(恢复数据库)还原用户邮箱数据
  3. 第十一章:配置和安全---IntelliMorph
  4. java中hotspot_Java 8中HotSpot选项的改进文档
  5. (49)System Verilog字符串string详解
  6. Floyed(floyd)算法详解
  7. 在地址栏调试js(小技巧)
  8. 软件评测-信息安全-应用安全-资源控制-用户登录限制(上)
  9. C++:怎样把一个int转成4个字节?
  10. Hbase Locality
  11. 电表485通讯抄表软件
  12. 空指针异常可能出现的原因
  13. 计算机键盘灯不亮原因,键盘上的三个灯不亮?竟是这个原因
  14. 6款PC脑图工具,你pick哪一款呢
  15. 5G承载网络技术发展趋势
  16. 男子取己击架后患净癖怪病 1地用12舒卫生纸
  17. boris fx 教程_通过编程将金融工具分散化:Dfinance的Boris Povod访谈
  18. 操作系统课设--多用户多级目录的文件系统
  19. J2L3x 一款安全的即时沟通软件
  20. 只有曾失去的才知道珍惜

热门文章

  1. mysql_分组查询
  2. 漳州华为云计算机,漳州市云主机托管
  3. python数据可视化之美 豆瓣_Python数据可视化:豆瓣电影TOP250
  4. oracle添加两个约束,Oracle添加表约束的2种方法
  5. ngrok技术原理及下载使用
  6. 【问题3】生产环境中的 redis 是怎么部署的?
  7. LeetCode 141. Linked List Cycle 判断链表是否有环 C++/Java
  8. LESS+to+MCSS
  9. jQuery的介绍和选择器详解
  10. decode()函数