问题:关于使用fput()函数将字符写入文件中,部分字符没有写进去。
请你们解答一下
unsigned char binaryStringToChar(const char *binStr){
unsigned char c = 0;
for(int i = 0; i<= 7 ; ++i){
c <<= 1;
c |= 1 & (binStr[i] - '0');
}
return c;
}
void allBinaryStringToChar(const char* filename){
size_t paddingLength = 8 - (allCharHuffmanCode.length() % 8);
allCharHuffmanCode.append(paddingLength, '0');
cout << allCharHuffmanCode.length() << endl;
FILE *fp ;
fp = fopen(filename,"w");
if(fp == nullptr){
cerr << "The file failed to open!!!" << endl;
return ;
}
string buffer;
int j =0;
for(size_t i = 0; i < allCharHuffmanCode.length() ; i += 8) {
string binStr = allCharHuffmanCode.substr(i, 8);
const char *cStr = binStr.c_str();
int c = binaryStringToChar(cStr);
compressedChar.emplace_back(c);
fputc(c,fp);
}
fclose(fp);
}