我想在VC中实现将二进制转换成字符串的函数,请各位指导,提示如果您有相关的程序代码最好能借我参考一下。谢谢

解决方案 »

  1.   

    但我要在VC中的EDIT BOX框中显示啊
    我用的是SetInputMode(1)以二进制读取啊。
    所以现在我在EDIT BOX中显示的是乱码啊
      

  2.   

    strtemp.Format("%c",bt); 
    我是这么写的。但依然显示的是乱码。。
    我是刚刚接触这个,所以用错的地方请大家指导啊
      

  3.   

    strtemp.Format("%x", bt);  //bt是什么?
      

  4.   

    关于我说的要将二进制转成字符串。中的二进制我是这么理解的。不知道对不对啊。
    “SetInputMode(1)以二进制读取啊。”
    请看我的这个代码,这个是用二进制读取的啊。那么返回的就应该是二进制,对吧。
    但是我现在想将他在VC的 EDIT BOX框里显示,这样直接显示出来的是乱码。
    有人告诉我说这个EDIT BOX不能显示二进制的。所以我现在想将得来的二进制转换成字符串来显示啊。
    不知道我这么说,大家能明白我的意思么!!!虽然现在问题还没解决,但我真的谢谢大家啊。
    如果您还有什么好的方法请指教啊!
      

  5.   

    应该是strtemp.Format("%s",bt); 
      

  6.   

    strtemp.Format("%s",bt); 
    这个方法我试过了,但是不正确。谢谢!对与各位的建议我一定会尝试的,然后尽量及时将结果反馈回来供大家参考。
      

  7.   

      VARIANT var;
        COleSafeArray olesafearr;
        long len=0;
    CString str="";
    BYTE buf[1024];
    memset(buf,0,sizeof(buf));
    if(m_ctrCom.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
    {
    //MessageBox(_T("读取数据事件"), _T("TRACE"), MB_OK);//add by ly 2006.9.7
    var=this->m_ctrCom.GetInput();  //读缓冲区
    olesafearr=var;
    len=olesafearr.GetOneDimSize();  //得到有效数据长度
    str.Format("%d",len);              //
    // AfxMessageBox(str);                //by  ly  2006.9.6
    for(long i=0;i<len;i++)
    {
    olesafearr.GetElement(&i,&buf[i]);    //转换为BYTE型的数组
    }
    for(long j=0;j<len;j++)
    {
    BYTE b=*((char *)(&buf[j]));
    str.Format("%c",b);
    // AfxMessageBox(*ppp);            //by ly 2003.9.6
    this->m_strReceiveData+=str;
    } }
    UpdateData(0);  
    这个是我的部分代码。变量名有些和最开始我写的有些变化。请大家给些意见