fread函数不能拷贝文件吗,为何会出现这种情况。。求解

多出来的东西单纯只是因为你的fread和fwrite写的参数是一次读写40字节还不检查EOF且a数组没有初始化又不是逐个字符输出,仅此而已。
■网友
问题很简单,而且之前朋友说的都对,关键还是在于你的缓冲区未初始化,造成读出的40字节放到缓冲区后,40字节后的内容仍然为未初始化的内容,造成后面的多余数据被写入b,其实有个解决方案就是ftell一下获取你的文件内容大小,并决定是否需要分块读入,并分块写入,合理安排缓冲区的大小才是关键啊!你buffer的100字节,你是怎么获取到的?可能会造成100大于a的大小或者小于a的大小呢?这些都是不行的,并且你是fread和fwrite写入二进制数据流,没有分隔符的概念,只能通过EFO去判断文件尾,利用过大过小的buffer都会产生一些问题,不像ASCII文件,buffer过长,会以\\0作为结尾


    推荐阅读