记一个小功能的实现过程,程序中在循环体里使用语句
int num = fwrite(&wrByte,1,i/8,pfw);
代替了判断语句,不知道是判断每够8比特写入一次的效率高还是直接用上面的语句效率高,有待验证。
int main(int argc, char** argv)
{FILE* pfr=NULL,*pfw=NULL;fopen_s(&pfr, argv[1],"rt");if(!pfr){cout<<"打开文件失败!"<<endl;return -1;}fopen_s(&pfw,".\\Txt2Dat.out","wb");if(!pfw){cout<<"创建文件失败!"<<endl;return -1;}char orByte[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};char orSign[]={0,0xff,0xff,0xff,0xff,0xff,0xff,0xff};char reByte=0,wrByte=0;unsigned int i=0;int count = 0;while(1 == fread(&reByte,1,1,pfr)){wrByte^=(orSign[(reByte - 0x30) % 2] & orByte[i % 8]);++i;int num = fwrite(&wrByte,1,i/8,pfw);wrByte &= orSign[i % 8];i=i%8;++count;}fclose(pfr);fclose(pfw);return 0;
}