解决方案 »
- error C2664: 'TextOutW' : cannot convert parameter 4 from 'char [20]' to 'LPCWST
- 有没有一种软件,能够实现这样的“自动备份”的功能?
- 很微小的问题
- 关于徒手画直线的,我自己的程序鼠标移动的时候闪的厉害,请问高手有什么好方法?
- 关于udp消息包确认问题的继续
- 二级指针(二维数组)的动态内存分配与释放问题?
- [::]如何用c++实现获取一个网站的信息(html代码),而不用IE?我有一段java代码,不知哪位能帮助转为vc
- 哪位前辈赐教“用asp如何实现在不同的分辨率下跳转至不同的页面”
- 一个简单的程序,该如何实现啊???
- 请问这是什么控件?
- 一个tree control的问题,请大家帮忙指点
- 扩充CEdit
if(strcmp(username[i],name)==0)
{
for(int j=0;pass[j]!='\0';j++)
if(password[i][j]!=pass[j]+j)//口令解密
return -1;
return i;
}因为你第一个密码对的话 就返回了一个0
而你后面判断>=0就登陆成功
for(;pass[j]!='\0';j++)
{
if(password[i][j]!=pass[j]+j)//口令解密
return -1;
}
if (j != strlen(password[i]))
{
return -1;
}
return i;
#include <string>
#include <fstream>
using namespace std;class User
{
private:
char username[10][10];
char password[10][10];
static int num;
public:
User(char *name,char *pass)
{
strcpy(username[num],name);
strcpy(password[num],pass);
for(int i=0;password[num][i]!='\0';i++)//口令加密
{
password[num][i]+=i;
}
num++;
}
int loggin(char *name,char *pass)
{
for(int i=0;i<num;i++)
{
if(strcmp(username[i],name)==0)
{
int j=0;
for(j=0;pass[j]!='\0';j++)
{
if(password[i][j]!=pass[j]+j)//口令解密
{
return -1;
}
} if('\0' != password[i][j])
{
return -1;
} return i;
}
}
return -1;
}
};int User::num=0;void main()
{
system("color 3F");
char name[10],pass[10];
User u1("123","123");
cout<<"input name:";
cin>>name;
cout<<"input password:";
cin>>pass;
if(u1.loggin(name,pass)>=0)
{
cout<<"登陆成功!"<<endl;
}
else
{
cout<<"登陆失败,请再次输入!"<<endl;
}
}