读写字符问题。前辈们麻烦指导指导
g =8for(e=0; e<strlen(d); e++){
if (d[e] == '0'){
f = f<<1;
g--;
}
else if (d[e] == '1'){
f = f<<1;
f += 1;
g--;
}
if (g == 0){
fwrite(&f, 1, sizeof(f), fop);
f = 0;
g = 8;
}
}
if (g != 8){
while (g--){
f = f << 1;
}
fwrite(&f, 1, sizeof(f), fop);
}
这个是读字符数组d里面的10101010之类的2进制码,每读8位2进制生成一个字符,d是先前已经算好的2进制。现在我想在一开始就在2进制码前面加个0
例如01010101 变成这样.也是8位2进制.就是每读7位前面加个0组成8位..求指导求指导....
for(e=0; e<strlen(d); e++){
if (g== 8){
f = f<<1;
g--;
}
if (d[e] == '0'){
f = f<<1;
g--;
}
else if (d[e] == '1'){
f = f<<1;
f += 1;
g--;
}
if (g == 0){
fwrite(&f, 1, sizeof(f), fop);
f = 0;
g = 8;
}
}
if (g != 8){
while (g--){
f = f << 1;
}
fwrite(&f, 1, sizeof(f), fop);
已经弄好了...前面加0的. 不过虽然能解密```但后面会多出 000000...要删除那些多余添加进来的要怎么做呢...
例如文件里有aa一个字符2进制码为01100001 01100001加密后前面会变成11000011 11000010..然后再解密就变 01100001 01100001 00000000 后面会多出一个 00000000 要怎么把多出那个删除呢。。。
[ 本帖最后由 clcqifeng 于 2012-2-28 11:06 编辑 ]