c++ - 如何在 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++ 文件运算符将其存储到 txt 文件中(阅读:https ://www.bogotobogo.com/cplusplus/fstream_input_output.php ),后跟分隔符标记每条记录的结尾。将文本文件中的格式保留为:
UserID1
Username1
Password1@
UserID2
Username2
Password2@
这里@是一个分隔符。通过使用上述分隔符读取记录来检索 .txt 文件中的用户名或 id 的记录。如果找到记录,将记录值按行分隔并将它们存储在变量中,然后与输入数据值进行比较。继续搜索直到 EOF 标志为假。
推荐阅读
- postgresql - 如何连接到 OpenMapTiles Docker Postgres DB
- swift - 如何区分位于 2 个不同类中的表视图
- python - “user_id”列中的空值违反非空约束细节:失败行包含(34、30、空)
- couchdb - PouchDB 复制与 CouchDB 的版本兼容性
- liferay-7 - 我想在 Liferay 7.x 中禁用浏览器缓存
- r - 无法在 R 中导入 JSON 文件
- android - Wear OS:通知不会显示
- c++ - 如何“传递”命名空间作为参数?
- octave - 特征缩放和截距
- http-headers - 如何在文件后端使用 X-Forwarded-Prefix