所以我创建了一个程序,当您在控制台中写入“ user.create”时,它将告诉您输入名称和密码,然后,用户名和密码将被写入文本文件“ nice”中。 txt”,但是每次启动程序时,都会清除“ nice.txt”,如何在需要的地方留文本并阅读?!
这是示例代码:
#include <iostream>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
fstream file_to_create;
file_to_create.open("nice.txt");
ifstream read("nice.txt");
ofstream out("nice.txt");
string input = " ";
while (1) {
cin >> input;
if (input == "app.exit")
return 0;
else if (input == "user.create") {
string name, password;
cout << "create user->\n";
cout << "name:";
cin >> name;
cout << "password:";
cin >> password;
out << name << '\n' << password << '\n';
cout << "user created.\n";
} else if (input == "user.access") {
string name, password;
cout << "access user->\n";
cout << "name:";
cin >> name;
cout << "password:";
cin >> password;
string look_name, look_password;
bool found = 0;
while (read >> look_name >> look_password) {
if (look_name == name && look_password == password) {
cout << "user " << look_name << " is now connected.\n";
found = 1;
}
}
if (!found)cout << "user not found.\n";
}
}
}
基本上,当您键入“ user.access”时,它应该从“ nice.txt”中读取文本 这是空的,因为每次执行.exe时都会清除该
答案 0 :(得分:0)
您需要使用append mode
打开文件。打开书写时,默认模式为std::ios::out
。此模式将光标移动到文件的开头,如果您在文件上写了一些文本,它将覆盖旧数据。
您需要使用std::ios::app
。此模式将光标移到文件末尾,避免覆盖。
更改:
ofstream out("nice.txt");
收件人:
ofstream out("nice.txt", std::ios::app);
您可以了解有关此here的更多信息。