请求高人一个C++程序问题!
小弟初学C+ +有一程序如下:
#include <iostream.h>
#include <string.h>
class User
{
private:
char UserName[20];
char Pass[6];
public:
User (char u[], char p[]){strcpy(UserName,u); strcpy(Pass,p);}
char *GetUserName(){return UserName;}
char *GetPass(){return Pass;}
};
void welcome ()
{
cout<<"\n欢迎进入系统!"<<endl;
}
void main()
{
User user[]={ User("AABBBB","123456"),User("BBCCCC","234561"),
User("CCDDDD","345612"), User("DDEEEE","456123"),User("EEFFFF","561234")};
char name[20],pass[6];
while (1)
{
cout<<"姓名输入为Q时退出\n\n";
cout<<"请输入姓名: ";
cin>>name;
cout<<"请输入口令: ";
cin>>pass;
if (strcmp(name,"Q")==0)
break;
for(int i=0;i<5;i++)
if ((strcmp(name,user[i].GetUserName())==0)&&(strcmp(pass,user[i].GetPass())==0))
{
welcome();break;
}
if(i==5)
cout<<"用户名不存在或口令错!"<<endl;
}
cout<<"\n欢迎下次再见!"<<endl;
}
当输入正确用户和口令时仍显示:用户名不存在或口令错!
其它情况正确,调试发现pass变成123456BBCCCC,比自己设置的多6位,而且是下一个用户名,一直想不明白,请教高人帮忙!!!