存储在文件中的对象的字符串成员

时间:2019-03-24 12:04:16

标签: c++

这是我的代码的功能。每当我以任何用户身份登录时,第一次都可以。但是,从第二次开始,它不会从文件中提取字符串值来与用户提供的密码相匹配。

    int userLogin(){
        int studentUser;
string studentPassword;
int x=1;
system("cls");
cout<<"\n ---------- Student Login -------";
cout<<"\n\n Enter username: ";
cin>>studentUser;
cout<<"\n Enter password:";
cin>>studentPassword;
char filename[20];
sprintf(filename,"%d%s",studentUser,".dat");
ifstream fin(filename,ios::in);
student t;
fin.read((char*)&t,sizeof(t));
if(t.PASSWORD==studentPassword){
while (x!=0){
    int innerChoice = 0;
    while(innerChoice != 9){
    system("cls");}}}

每次用户应提供用户名和密码进行登录。使用用户名将找到文件,然后将文件中的密码与输入的密码匹配。

1 个答案:

答案 0 :(得分:0)

您不能使用write将C ++字符串保存在文件中,也不能使用read读回它们。这样只能序列化非常具体的类型,有关详细信息,请参见POD types

实现所需方法的最简单方法是切换到使用格式化的I / O来读写Student类型。

有关更具体的建议,请发布您的Student类的详细信息。