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

读取二进制文本文件,该如何解决

2013-12-20 
读取二进制文本文件char chkeybuf[300]char chkeybuf2[100]TCHAR keybuf[100]char dirszPath[MAX_PATH]

读取二进制文本文件
   char chkeybuf[300];
  char chkeybuf2[100];  
  TCHAR keybuf[100];  
  char dirszPath[MAX_PATH],dirszPath2[MAX_PATH];
  FILE *fpREGINFO;

 memset(chkeybuf2, 0, sizeof(chkeybuf2));
        wcstombs(chkeybuf, keybuf, wcslen(keybuf));
        chkeybuf[wcslen(keybuf)] = '\0';
        Str2Value(chkeybuf,chkeybuf2);
chkeybuf2[wcslen(keybuf)/2] = '\0';
FILE *fp;
    strcpy(dirszPath, PersonalDir);
    strcat(dirszPath, "\\TOP GUN\\Record\\TOPGUNKEY.dat");
if((fp = fopen(dirszPath,"wb")) == NULL)
{
exit(0);
}
else
{
fwrite(chkeybuf2,16,1, fp);
fclose(fp);
}


           strcpy(dirszPath2, PersonalDir);
   strcat(dirszPath2, "\\TOP GUN\\Record\\TOPGUNKEY.dat");
if((fpREGINFO = fopen(dirszPath2,"rb")) == NULL)
{
exit(0);
}
else

fread(&xulie,sizeof(TCHAR),50,fpREGINFO);
fclose(fpREGINFO);
}
各位大哥,读出来的xulie是乱码,我知道是读的时候有问题,就是不会改,请各位大哥多多指教一下,急用!小女子这厢谢谢了读取二进制文本文件,该如何解决
[解决办法]
你fwrite(chkeybuf2,16,1, fp);写的就是二进制数。

引用:
Quote: 引用:

乱码不一定就是错的,对照二进制数据才是本质的方法。

Quote: 引用:

   char chkeybuf[300];
  char chkeybuf2[100];  
  TCHAR keybuf[100];  
  char dirszPath[MAX_PATH],dirszPath2[MAX_PATH];
  FILE *fpREGINFO;

 memset(chkeybuf2, 0, sizeof(chkeybuf2));
        wcstombs(chkeybuf, keybuf, wcslen(keybuf));
        chkeybuf[wcslen(keybuf)] = '\0';
        Str2Value(chkeybuf,chkeybuf2);
chkeybuf2[wcslen(keybuf)/2] = '\0';
FILE *fp;
    strcpy(dirszPath, PersonalDir);
    strcat(dirszPath, "\\TOP GUN\\Record\\TOPGUNKEY.dat");
if((fp = fopen(dirszPath,"wb")) == NULL)
{
exit(0);
}
else
{
fwrite(chkeybuf2,16,1, fp);
fclose(fp);
}


           strcpy(dirszPath2, PersonalDir);
   strcat(dirszPath2, "\\TOP GUN\\Record\\TOPGUNKEY.dat");
if((fpREGINFO = fopen(dirszPath2,"rb")) == NULL)


{
exit(0);
}
else

fread(&xulie,sizeof(TCHAR),50,fpREGINFO);
fclose(fpREGINFO);
}
各位大哥,读出来的xulie是乱码,我知道是读的时候有问题,就是不会改,请各位大哥多多指教一下,急用!小女子这厢谢谢了读取二进制文本文件,该如何解决


乱码就是跟文件里面的一样,但是我想要的不是二进制,如何把这个乱码转化为字符了?谢谢大哥了

[解决办法]
参考http://www.cnblogs.com/JCSU/articles/1306451.html


乱码就是跟文件里面的一样,但是我想要的不是二进制,如何把这个乱码转化为字符了?谢谢大哥了
那我怎么才能化成字符了?
[解决办法]
对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A

推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。

热点排行