我是新手。
我有一个学校项目,有一个头文件,它有82个用户名。喜欢
char *usernames[] ={a1,a2,a3,.... a82};
char *passwords[] =[p1,p2,...p82);
我已经完成了大量的项目,但仍然无法为登录阶段编写有用的代码。
我的代码必须输入用户名,然后要求输入密码。
对于这个阶段,我基本上认为是循环:
char *usernamecheck;
char *passwordcheck;
cout<<"Please login. \n Username\n ";
cin >> usernamecheck ;
for(int flag=0;flag<82;flag++)
{
if(usernamecheck==usernames[a]){
passwordcheck==password[a];
}
else {
}
}
cout<<"Please enter your password\n";
....
然后,我将比较从用户和头文件获取的密码。
我想问的是,我们当然没有看到这一点。我不知道如何比较2个char指针。我尝试将其用作字符串,但失败了。
最佳答案
这个:
char *usernamecheck;
...
cin >> usernamecheck ;
将是不确定的行为。没有与
usernamecheck
关联的内存。你说:我试图用作字符串,但失败了。
因此,当有闪亮的新c ++可用方法时,请不要使用旧的古老方法:
std::string usernamecheck;
...
cin >> usernamecheck;
bool isUser = usernamecheck == username;
做完了
使用
std::string
炸弹。Live example.