写文件问题???很急~~~大家帮帮忙
我要把我定义个一数据结构体,写入文件,写进去的数字是ASC码,我让写进去的数字以BCD码的形式存储,怎么处理??
我定义的结构体如下:
typedef struct phonebook_data{
char name[8];
char phone[8];
}BookData;
我打开文件的形式是以“wb”。写入文件后,用U-E打开显示如下:
64 64 64 64 00 00 00 00 31 32 33 34 00 00 00 00 ;
但我希望它显示如下:
64 64 64 64 00 00 00 00 12 34 00 00 00 00 00 00 ;
请教各位有没有处理的方法,先谢了。
[解决办法]
void ConvertNumberStrToBCD(char *str)
{
unsigned char *p;
int i = 0;
int len = strlen(str);
p = str;
for( i = 0 ; (i < len) && (str[i]) ; i++ ){
if( i % 2){
*p = (*p < < 4) + (str[i] - '0 ');
p++;
}
else{
*p = str[i] - '0 ';
}
}
if((i < len) && (i % 2)){
*p = (*p < < 4);
p++;
}
for( ; p <= &str[len] ; p++ )
*p = 0;
}
调用
ConvertNumberStrToBCD(bd.phone)