好的,我非常清楚每个人对自制密码管理器的感受,但我想帮助我。 不是实际使用,只是为了学习。
我想知道,在C ++中如何获得长期变量。或者,真的,有任何长期的。
长期意味着什么?在下一次运行.exe时保存或继续的东西。在我的情况下,我想要在哪里,第一次运行程序时它会要求您输入访问密码,因此下次启动程序时,您必须输入首次启动时选择的密码。
目前,我只是使用if()语句检查密码是否等于我想要的密码,如果是,则运行。然而,这远非实际有效,并且不太实用。
我想到的是在某个地方创建一个包含访问密码的文本文件,并阅读它,但这样做会破坏密码管理器的目的。
答案 0 :(得分:1)
程序中的每个变量只在内存中,在退出时丢失。您必须将其存储在磁盘上,然后从那里读取它。
有很多方法可以直接或间接地做到这一点。
一种非常简单的低级方法是使用ofstream
和ifstream
。 E.g:
#include <iostream>
#include <fstream>
int main() {
using namespace std;
int counter = 0;
// try to load counter from file
{
ifstream myfile("mycounter.txt");
if (myfile.is_open())
{
myfile >> counter;
}
myfile.close();
}
cout << "current counter: " << counter << endl;
// save counter to file
{
ofstream myfile;
myfile.open("mycounter.txt");
myfile << counter << endl;
}
}
您可能更熟悉C函数fopen
,fread
,fwrite
,fclose
等。
然后,有数据库,并且有简单的库可以使用这些数据库。查看sqlite,您可以在C ++中使用它。
答案 1 :(得分:1)
您可以启动数据库或将数据保存/写入文件。