LRESULT CMofServerDlg::OnAccept(WPARAM wParam,LPARAM lParam)
{
         //自定义接收客户机请求的消息
         CString user;
user.Format("用户:%c连上了服务器。",msg.U_ACCOUNT);
m_RichEdit.ReplaceSel(user);
return 0L;
}
执行的时候richedit控件里面显示的是
"用户:t连上了服务器。",不管msg.U_ACCOUNT是多少,都是显示的这句话。
当把user.Format("用户:%c连上了服务器。",msg.U_ACCOUNT);中的%c换成%s,都显示的是“用户:0M连上了服务器。”
msg.U_ACCOUNT是一个class数据包
MofMsg msg;
//数据包
class MofMsg
{
public:
char U_ACCOUNT[16];
char U_PWD[16];
char  NUMBER;
char MY_ID[8];
char NICKNAME[16];
};
请问怎样才能正常显示账号msg.U_ACCOUNT的值呢???

解决方案 »

  1.   

    如果你要用字符串而不是字符显示“用户”,要用%s,你看看在执行format之前,msg.U_ACCOUNT的值
      

  2.   

    user.Format("用户:%s 连上了服务器。",msg.U_ACCOUNT);
      

  3.   

    U_ACCOUNT现在代表的是字符数组的头指针了,你可以使用指针移动获得完整的数据,呵呵
      

  4.   

    CString user;
    user = "用户" + msg.U_ACCOUNT + "连上了服务器。";
      

  5.   

    都是字符,用什么Format嘛~~~另外,执行这个操作的时候检查一下msg.U_ACCOUNT 中的结果是不是正确。
      

  6.   

    CString user;
    user = "用户" + msg.U_ACCOUNT + "连上了服务器。";
    这种编译通不过。
      

  7.   

    汗~~~我的程序是这样写的,不好意思了。
    CString user("用户");
    user = user + msg.U_ACCOUNT + "连上了服务器。";
      

  8.   

    是啊。不明白为什么需要Format
      

  9.   

    这段 没问题把 ,问题出在 msg.U_ACCOUNT 上?