【问题标题】:Persistent data/settings in C++ applicationC++ 应用程序中的持久数据/设置
【发布时间】:2012-07-09 11:28:04
【问题描述】:

第一次,我正在编写一个相当复杂的应用程序,它会记住用户的姓名、性别、年龄等。这是我需要做的:

  • 应用程序启动,并检查信息(姓名、年龄等)是否已保存。
    • 如果没有,应用程序会获取此信息并保存。

当用户重新启动这个程序时,程序应该会看到信息已保存,并将此信息保存为 C++ 变量。

如果您不知道我想要什么,我可以提供更多信息。我从来没有这样做过,在网上搜索了半天,我只是变得更加困惑,所以我怕我需要一些认真的手,对不起。

谢谢,

-克里斯。

【问题讨论】:

  • 你可能想要一个数据库。
  • 太模糊了。最简单的方法是显而易见的;将数据写入文件。当然,这不能很好地扩展,因此根据您的要求,您可能需要查看数据库。最后一句话的重要部分是“取决于您的要求......”
  • 您可以使用纯文本文件、数据库(如 SQLite,对嵌入数据很有用)、您自己选择的一些配置格式,甚至可以使用Boost to read/write configuration files
  • 我知道这太模糊了,不能称为牵手,但就问题的意图和推荐的方法而言,它几乎是重复的:stackoverflow.com/questions/7271307/…
  • 您可能希望在您的问题中包含目标平台(例如 Linux、Mac、Windows...)。通常有特定于操作系统的库来保存简单的设置,以及要遵循的约定。

标签: c++ settings application-settings


【解决方案1】:

您似乎是 C++ 新手,因此我建议您将信息保存到文件中。 (那是我的课程开始的地方,而不是数据库)

这样的事情应该可以解决问题:

#include <iostream>
#include <fstream>
#include <string>
int main(){
    ifstream input("your_saved_file.txt");
    string name="", age="", etc="";
    input >> name >> age >> etc;
    if(name=="" || age=="" || etc==""){
        input.clear(); input.close();
        ofstream output("your_saved_file.txt");
        cout << "Enter name: ";
        cin >> name;
        cout << "Enter age: ";
        cin >> age;
        cout << "Enter etc: ";
        cin >> etc;
        output << name << endl << age << endl << etc << endl;
        output.close(); output.clear();
    }
    else{
        input.clear(); input.close();
        cout << "Name: " << name << " Age: " << age << " Etc: " << etc;
    }
    return 0;
}

希望这是您正在寻找的那种东西,

里根

【讨论】:

  • np,希望这就是你要找的东西 :)
  • 很好很简单,但有一个问题是输入std::string 只会读到第一个空格字符(来自cininput)。您还需要 using namespace std;std:: 前缀。
  • 很棒的评论,先生,我很着急@j_random_hacker
  • 还好名字、年龄等只有1个字,不过我会改成getline(cin, name, '\n');
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-25
  • 2013-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多