C++;登录程序:如何添加忘记密码功能 我最近创建了一个简单的C++登录程序(下面的检查代码)。然而,除非我能解决我心中的以下问题,否则我无法完全信服。在以下方面,我真的需要有人的帮助:

C++;登录程序:如何添加忘记密码功能 我最近创建了一个简单的C++登录程序(下面的检查代码)。然而,除非我能解决我心中的以下问题,否则我无法完全信服。在以下方面,我真的需要有人的帮助:,c++,C++,如果我第一次运行该程序,显然我不能成功登录,因为没有现有帐户,我该怎么做,如果我选择登录并输入用户名和密码,程序将输出“帐户不存在” 我还希望程序检测我是否在现有帐户中输入了错误的用户名或密码 如何添加忘记密码功能 非常感谢你 #include<iostream> #include<string> #include<cstdlib> #include<fstream> using namespace std; int choice; bool

如果我第一次运行该程序,显然我不能成功登录,因为没有现有帐户,我该怎么做,如果我选择登录并输入用户名和密码,程序将输出“帐户不存在”

  • 我还希望程序检测我是否在现有帐户中输入了错误的用户名或密码

  • 如何添加忘记密码功能

  • 非常感谢你

    #include<iostream>
    #include<string>
    #include<cstdlib>
    #include<fstream>
    
    using namespace std;
    
    int choice;
    bool cinfail;
    int confirmation;
    string username, password, password2;
    
    void MainMenu();
    
    void writetofile(string username){
         ofstream writefile;
         string file = username+".txt";
         writefile.open(file.c_str());
         writefile << password;
         writefile.close();
         MainMenu();
    }
    
    void login(){
         system("cls");
         cout<<"Username: "<<endl;
         cin>>username;
         cout<<"Password: "<<endl;
         cin>>password;
    
         if((username == username) && (password == password2)){
              cout<<"SUCCESSFUL LOGIN!";
         }
         else{
              cout<<"INVALID USERNAME OR PASSWORD!"<<endl;
         }
    }
    
    void RegisterPassword(){
         cout<<"Please enter the password: "<<endl;
         cin>>password;
         cout<<"Please reenter your password: "<<endl;
         cin>>password2;
    
         if(password == password2){
             cin.clear();
             cin.ignore(10000, '\n');
             writetofile(username);
             exit(1);
         }
         else{
              cout<<"Sorry, invalid password. Try again."<<endl;
              RegisterPassword();
         }
         system("cls");
    }
    
    void registerme(){
         system("cls");
         cout<<"REGISTER ACCOUNT"<<endl;
         cout<<"Please enter your username: "<<endl;
         getline(cin, username);
         cout<<"\nUsername - \"" <<username<< "\"\nConfirm? \n\n[1] Yes\n[2] No"<<endl;
         cin>>confirmation;
    
         if(confirmation == 1){
             RegisterPassword();
         }
         else{
             cout<<"Sorry, invalid input. Try again"<<endl;
             cin.clear();
             cin.ignore(10000, '\n');
             registerme();
         }
    }
    
    void exit(){
         exit(0);
    }
    
    void MainMenu(){
         cout<<"SIMPLE LOGIN PROGRAM by RZAM\n[1] Login\n[2] Register\n[3] Exit"<<endl;
         cin>>choice;
    
         do{
              cinfail = cin.fail();
              cin.clear();
              cin.getline(10000,'\n');
    
              }while(cinfail == true);{
                   switch(choice){
                          case 1:
                               login();
                               break;
    
                          case 2:
                               registerme();
                               break;
    
                          case 3:
                               exit();
                   }
              }
    }
    
    main(){
    MainMenu();
    }
    
    #包括
    #包括
    #包括
    #包括
    使用名称空间std;
    智力选择;
    布尔辛法尔;
    int确认;
    字符串用户名、密码、密码2;
    void main菜单();
    void writetofile(字符串用户名){
    流写入文件的类型;
    字符串文件=用户名+“.txt”;
    open(file.c_str());
    
    writefile对于任何忘记的密码,我们通常会发送一封电子邮件,询问这是否是合法的请求。您不能这样做,可能会在用户登录时保存其出生日期或一个秘密问题。他们可以使用此信息输入新密码

    要检测现有帐户的错误密码,请执行以下操作:

  • 将所有用户名读入数组
  • 对照所有用户名检查输入的用户名
  • 如果用户名存在,并且密码错误,您可以提醒用户

  • 1、这是一个家庭作业问题吗?我记得做过这样的事是学校2。你需要存储用户名和密码。也许在文本文件中。当注册用户时,添加它3。登录时,需要查找存储的用户名,这些文件中的密码不是C++问题。它们是设计问题。答案由你决定。就像问“我该如何画一幅画?”好吧,有些人画快乐树,有些人画矩形,有些人只是让猴子把画扔到画布上。从技术上讲,它们都是画。问题是开放的,实际上是,“什么是一些常见的认证机制?”如果问题是“如何解析文件中的键/值对?”这是另一个问题。另一个问题可能是“如何从键/值集合中添加/删除元素?”如果你注册了足够多的用户,你就会遇到这个网站的名字:stack overflow!
    MainMenu
    calling
    registerme
    calling[two more]调用<代码>主菜单<代码>嗨!@ USE1451348好的一天!实际上这不是一个家庭作业,我是新的编程人员,我使用C++语言。这是我自己的程序集:“你好,Reece Ward,谢谢你的回答,但是我不太理解你的2和3。你能详细地说还是提供小片段?我真的很感激。谢谢,谢谢!