因为这学期期末会写一个哈夫曼压缩的程序,所以自己就写了个基于位的文件操作读写类。
基本思路就是 凑足 8位 然后进行读写。
//CMBitFile 基于位的文件操作类
//作者:AkChen
//QQ:779825427
#pragma once
#define MODE_READ 1 //读模式
#define MODE_WRITE 2 //写模式
#define MODE_NONE 3 //没有打开
#include <stdio.h>
class CMBitFile
{
private:
int m_Mode; //文件操作模式
unsigned char m_chTemp; //字符存储缓存
int m_Mask; //记录位在一个字节的位置
FILE* m_pFile; //文件指针
public:
bool WriteBit(int bit); //写入一位
bool ReadBit(int& bit); //读进一位
bool WriteByte(unsigned char byte); //写一字节
bool WriteMem(void* pSrc, int len);
bool Printf(char*, ...);
bool ReadMem(void* pDst, int len);
bool ReadByte(unsigned char& byte); //读字节
bool Open(char* filename,int mode); //打开文件
bool Close(); //关闭文件
long GetFileSize(char* fname);
CMBitFil