首页 > 解决方案 > 如何在 C++ 中将密码和用户名保存到 .txt 文件中。如果用户尝试登录,我仍然希望能够检索它们

问题描述

我正在启动一个基于控制台的网上银行(为了好玩)。我想知道如何保存注册帐户的人的用户名和密码(可能是 .txt 文件?)。我还想知道当他们尝试登录时,我将如何检查 .txt 文件中的用户名和密码。感谢任何帮助。这是源代码

#include <iostream>
#include <conio.h>
#include <Windows.h>
#include <string>
#include <stdlib.h>
using namespace std;
bool gameOver;

// global variables
string EntryChoice;
int numberOfIncorrect = 5;
string NewUsername;
string NewPassword;
string LoginUsername;
string LoginPassword;
string NewFirstName;
string LoginFirstName;
string NewLastName;
string LoginLastName;
int Newage;
string Newgender;
int Loginage;
string LoginGender;
//declaration of functions
void Login();
void SignUp();
void BankCheck();
void BankError();
void Bank()
{

    cout << "Welcome to the Bank of National Arabs\n";
    cout << "-------------------------------------\n";
    cout << "|To Sign Up type (Register) then Press Enter|\n";
    cout << "|To Login type (Login) then Press Enter|\n";
    cin >> EntryChoice;
    BankCheck();
}
void BankCheck()
{
    if (EntryChoice == "Login" || EntryChoice == "LOGIN" || EntryChoice == "login")
    {
        Login();
    }
    else if (EntryChoice == "REGISTER" || EntryChoice == "register" || EntryChoice == "Register")
    {
        SignUp();
    }
    else
    {
        system("cls");
        BankError();
    }
}
void BankError()
{
    if (numberOfIncorrect == 1)
    {
        exit(1);
    }
    numberOfIncorrect -= 1;
    cout << "Welcome to the Bank of National Arabs\n";
    cout << "-------------------------------------\n";
    cout << "|To Sign Up type (Register) then Press Enter|\n";
    cout << "|To Login type (Login) then Press Enter|\n";
    cout << "|ERROR| " << numberOfIncorrect << " Tries Left >> ";
    cin >> EntryChoice;
    BankCheck();
}
void Login()
{
    system("cls");
    cout << "Bank of United Arabs Login Page\n";
    cout << "-------------------------------\n";
    cout << "Username: ";
    cin >> LoginUsername;
    cout << "\nPassword:";
    cin >> LoginPassword;

}
void SignUp()
{
    system("cls");
    cout << "Welcome to the Register Page\n";
    cout << "----------------------------\n";
    cout << "Age: ";
    cin >> Newage;
    cout << "\nGender: ";
    cin >> Newgender;
    cout << "\nFirst name";
    cin >> NewFirstName;
    cout << "\nLast Name";
    cin >> NewLastName;
    cout << "\nUsername: ";
    cin >> NewUsername;
    cout << "\nPassword";
    cin >> NewPassword;
}
int main()
{
        Bank();


    return 0;
}

标签: c++text-files

解决方案


是的,你可以这样做。可能,每次您在注册时从用户输入数据时,您都可以同时使用 c++ 文件运算符将其存储到 txt 文件中(阅读:https ://www.bogotobogo.com/cplusplus/fstream_input_output.php ),后跟分隔符标记每条记录的结尾。将文本文件中的格式保留为:

UserID1
Username1
Password1@
UserID2
Username2
Password2@

这里@是一个分隔符。通过使用上述分隔符读取记录来检索 .txt 文件中的用户名或 id 的记录。如果找到记录,将记录值按行分隔并将它们存储在变量中,然后与输入数据值进行比较。继续搜索直到 EOF 标志为假。


推荐阅读