C语言读写二进制流
来源:互联网 发布:淘宝美工和运营的关系 编辑:程序博客网 时间:2024/06/01 11:13
学习赫夫曼编码,对于如何把二进制流存入二进制文件或如何从二进制文件读出二进制流进行了研究, 总结网上诸多大侠的片言只语, 实现了这一功能。声明:本人只是在学习C语言,不能跟专业人士相提并论。
原理是用一组掩码与要读出或写入的字符进行位运算,逐个写入或输出二进制码流。
源码:
#include <stdio.h>#define FILE_PATH "d:\\1.dat"char *bin="001101110110001000010000111100";unsigned char mask[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; FILE *fp;int BinRead(){ unsigned char get[255]; int pos,p = 0; unsigned char ch; fopen_s(&fp,FILE_PATH, "rb"); ch = fgetc(fp); while(!feof(fp)){ for(pos=7;pos>=0;pos--){ if(ch & mask[pos]) get[p]='1'; else get[p]='0'; p++; } ch = fgetc(fp); } get[p]='\0'; printf("\n%s\n",get); fclose(fp); return 0;}int BinWrite(){ fopen_s(&fp,FILE_PATH, "wb"); int pos = 7; unsigned char ch,put = 0x00; while((ch=bin[0])!='\0'){ if (ch=='1') put = put | mask[pos]; bin ++; pos --; if(pos==-1) { fputc(put,fp); pos = 7; put = 0x00; } } if (pos<7) fputc(put,fp); fclose(fp); return 0;}int main(){ BinWrite(); BinRead(); getchar(); return 0;}
1 0
- C语言读写二进制流
- C语言文件流操作的二进制读写和定位(fwrite、fread、fseek)
- LINUX C语言文件的读写(非二进制)
- c/c++二进制读写
- C++/C 文件二进制读写
- C++/C 文件二进制读写
- C语言视频教程二进制
- 【c语言】二进制翻转
- C语言二进制输出
- 【C语言】二进制
- 二进制流读写
- C语言文本方式和二进制方式读写操作的区别
- c语言读写文件
- C语言读写配置文件
- C语言读写
- c语言读写配置文件
- C语言读写文件
- C语言二进制文件读写
- ThreadLocal
- NSDate的常用方法
- JPEG图像获取GPS数据
- fgetc fputc的使用
- 事件委托案例
- C语言读写二进制流
- Java 反射实例
- List, Set, Map
- 菜鸟之路-07
- Code:Blocks输入中文出现乱码
- Leetcode -- Implement Trie (Prefix Tree)
- Mysql 存储引擎
- PullToRefreshListView的onRefreshComplete()不起效果解决方案
- 01-MyEclipse新建JavaWeb项目并发布到Tomcart下