我想写一个用户登录系统。用基于对话框的MFC实
我写的代码如下:
void CPpppDlg::OnButload() 
{
UpdateData(true);
    switch (m_idname)
{case "lius" :
       if (m_password=="myprogram")
  {MessageBox("管理员");
  break;
      }
         else m_reginfor.SetWindowText("密码错误!请再输一遍!");   
   case "guest" :
if (m_password=="welcome") 
{
MessageBox("游客");
break;
}
   else m_reginfor.SetWindowText("密码错误!请再输一遍!");
   default :
   {MessageBox("请先注册!","信息提示:",MB_ICONEXCLAMATION);
   break;}
  }
}s
但却不可以,因为switch中不可加入case
请问我该如何处理?请赐教!

解决方案 »

  1.   

    switch不能判断字符串
    m_idname的类型是什么
    不一定非要用switch-case结构啊,用
    if ()
      ...
    else if()
      ...
    else if()
      ...
    else
     ...
    结构也是可以的
      

  2.   

    判断字符串可以先把字符串转换为CString
    然后直接用CString的"=="操作符来完成
    或者直接用 strcmp 来完成
      

  3.   

    怎么可能不能加case呢?你这段程序的语法有问题
      

  4.   

    switch(//这里要数字的),if就不用那么多的break了,除非你不想执行break后面的一个大括号里面的代码
      

  5.   

    目前只知道c#才支持字符串,
    c,c++只支持字符,数字,
    所以判断字符串是就要如上面各位大哥说的用if else!:)