C语言下的二进制文件读写

来源:互联网 发布:mac hosts文件位置 编辑:程序博客网 时间:2024/06/06 00:29

C语言下的二进制文件读写

   在老师给的extmem库中存在不少的Bug,比如缓冲区管理,有可能出现空闲块数比总块数还多,但这个小心使用就可以避免但是有一个问题就比较严重了,那就是二进制文件的读写问题,在现实情况下文件都是以二进制进行存储的,每次都用一个char类型的变量不断读取二进制文件,如果遇到一个1111 1111B的话,就会被解析成EOF,也就是文件终止符号,此时后面的文件流就不会再被读入了。相信很多做过哈夫曼编码压缩的同学就经常遇见文件突然都不动了,莫名其妙就结束了。其背后的原因就是正好出现了EOF的编码。其实避免这个问题很简单,就是在打开文件的时候一定要使用二进制的方式也就是在"r"后面加上"b"变成"rb",写的时候也要加上"b".
0 0