首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

写文件有关问题?很急大家帮帮忙

2012-03-26 
写文件问题???很急~~~大家帮帮忙我要把我定义个一数据结构体,写入文件,写进去的数字是ASC码,我让写进去的

写文件问题???很急~~~大家帮帮忙
我要把我定义个一数据结构体,写入文件,写进去的数字是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)

热点排行