1

好的,我非常了解每个人对自制密码管理器的看法,但我需要帮助。非实际使用,仅供学习。

我想知道,在 C++ 中如何拥有长期变量。或者真的,有什么长期的。

我说的长期是什么意思?下次运行 .exe 时保存或继续的内容。就我而言,我想在哪里,第一次运行程序时它会要求您输入访问密码,因此下次启动程序时,您必须输入首次启动时选择的密码。

目前,我只使用 if() 语句来检查密码是否等于我想要的密码,如果是,则运行。然而,这远非实际有效,也不是很实用。

我想到的是在某处创建一个包含访问密码的文本文件,然后读取它,但这违背了密码管理器的目的。

4

2 回答 2

1

程序中的每个变量都只存在于内存中,并在退出时丢失。您必须将其存储在磁盘上,然后从那里读取。

有很多方法可以直接或间接地做到这一点。

一个非常简单的低级方法是使用ofstreamand ifstream。例如:

#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++ 中使用它。

于 2013-10-16T11:36:18.500 回答
1

您可以启动数据库或将数据保存/写入文件。

于 2013-10-16T12:48:03.903 回答