(新手)C++类中的构造函数调用时怎么才能从键盘输入?

来源:百度知道 编辑:UC知道 时间:2024/06/25 16:27:40
如简单的登录程序。源代码如下
#include"iostream"
#include"cstring"
using namespace std;
class Student
{
public:
char studentname[20][10];
char password[20][10];
static int num;
public:
Student(char*name,char*pass);
bool loggin(char*name,char*pass);
};

Student::Student(char*name,char*pass)
{

strcpy(studentname[num],name);
strcpy(password[num],pass);
for(int i=0;password[num][i]!='\0';i++) //密码加密
password[num][i]+=i;
num++;

}

bool Student::loggin(char*name,char*pass)
{
for(int i=0;i<num;i++)
if(strcmp(studentname[i],name)==0)
{
for(int j=0;pass[j]!='\0';j++)
if(password[i][j]!=pass[j]+j) //密码解密
return false;
return true;
}
return false;
}
int Student::num=0;

int main()
{
char name[10],pass[10];
S

改成键盘输入不是很困难的了,see see 下面这个,用g++可以编译运行,仅供参考吧~

#include"iostream"

#include"cstring"

using namespace std;

class Student

{

public:

 char studentname[20][10];

 char password[20][10];

 static int num;

public:

 Student(char*name,char*pass);

 bool loggin(char*name,char*pass);

};

Student::Student(char*name,char*pass)

{

 strcpy(studentname[num],name);

 strcpy(password[num],pass);

 for(int i=0;password[num][i]!='\0';i++)    //密码加密

  password[num][i]+=i;

 num++;

}

bool Student::loggin(char*name,char*pass)

{

 for(int i=0;i<num;i++)

  if(strcmp(studentname[i],name)==0)

  {

   for(int j=0;pass[j]!='\0';j++)

&n