fread函数不能拷贝文件吗,为何会出现这种情况。。求解
多出来的东西单纯只是因为你的fread和fwrite写的参数是一次读写40字节还不检查EOF且a数组没有初始化又不是逐个字符输出,仅此而已。
■网友
问题很简单,而且之前朋友说的都对,关键还是在于你的缓冲区未初始化,造成读出的40字节放到缓冲区后,40字节后的内容仍然为未初始化的内容,造成后面的多余数据被写入b,其实有个解决方案就是ftell一下获取你的文件内容大小,并决定是否需要分块读入,并分块写入,合理安排缓冲区的大小才是关键啊!你buffer的100字节,你是怎么获取到的?可能会造成100大于a的大小或者小于a的大小呢?这些都是不行的,并且你是fread和fwrite写入二进制数据流,没有分隔符的概念,只能通过EFO去判断文件尾,利用过大过小的buffer都会产生一些问题,不像ASCII文件,buffer过长,会以\\0作为结尾
推荐阅读
- 钟南山:随着冬天的到来,内地疫情防控不能松懈
- 『黄金时间』节水工作一刻不能放松! 黄金时间丨水乡江苏也缺水
- 电池|谁说家用紧凑SUV不能更运动?全新领克01让你“打脸”了
- 王者荣耀李白能不能出肉
- 水果|水果太甜,糖尿病患者都不能吃?这3种水果,其实升糖能力不高
- 怎样评价3月10日起外资企业不能在中国大陆提供视听服务这一消息
- 江苏省|不能带食品 信号屏蔽……南京这些剧场的观剧礼仪你知道吗?
- 疾病|皮肤3处突然“变红”,不能小觑,可能是癌症给出的“警示”
- 电信预付费用户为啥不能打印当月报销账单
- 被硬盘录像机自动删除的监控视频还能找回来了吗
