21xrx.com
2024-11-22 06:42:35 Friday
登录
文章检索 我的文章 写文章
C++通讯录管理系统:保存与读取
2023-07-01 18:42:56 深夜i     --     --
C++ 通讯录 管理系统 保存 读取

C++通讯录管理系统是一款非常实用的软件,能够帮助用户轻松地管理自己的通讯录。不仅可以增加、修改联系人的信息,还可以将联系人信息保存到本地磁盘中,以便在下次使用时可以直接读取。

通讯录管理系统的保存功能是非常简单的,只需要将联系人信息写入到一个文本文件中即可。在C++中,可以使用文件流(fstream)来实现这个功能。在程序中,只需要将联系人信息写入到预先定义好的文本文件中即可。代码如下所示:


#include <fstream>

...

void save_contact(const Contact& c)

{

  std::fstream ofs("contact.txt", std::ios_base::app);

  ofs << c.name << "," << c.phone_number << "," << c.email << std::endl;

}

在代码中,我们使用了fstream对象ofs来打开并操作联系人文件。这里的参数"contact.txt"表示要打开的文件名,参数std::ios_base::app表示以追加的方式打开文件。也就是说,如果联系人文件存在,那么一旦有新的联系人信息需要保存,就会将其追加到文件的末尾。如果联系人文件不存在,则会创建一个新的文件。

在将联系人信息写入文件之前,我们需要将联系人信息进行格式化,即将不同的字段用逗号(,)分隔开来。这里我们假设Contact结构体中包含了联系人姓名、电话号码和电子邮件地址。将这三个字段用逗号分隔开来,可以方便地存储到文本文件中。我们使用了运算符<<来将联系人信息写入文件中。

除了保存联系人信息,还需要一个读取联系人信息的功能。读取联系人信息的代码如下:


#include <fstream>

...

void load_contact(std::vector<Contact>& contacts)

{

  std::ifstream ifs("contact.txt");

  std::string line;

  while (std::getline(ifs, line))

  {

    std::stringstream ss(line);

    std::string name, phone_number, email;

    std::getline(ss, name, ',');

    std::getline(ss, phone_number, ',');

    std::getline(ss, email, ',');

    contacts.push_back( phone_number);

  }

}

在代码中,我们使用了ifstream对象ifs来打开联系人文件,然后使用std::getline函数来逐行读取文件中的数据。在每一行读取完成后,我们使用std::stringstream对象ss来将这一行数据进行分割,得到每个字段的值。这里我们假设每行数据的格式是"姓名,电话号码,电子邮件地址",所以我们使用逗号来分隔不同的字段,然后使用std::getline函数来获取每个字段的值。最后将获取的联系人信息添加到联系人列表中,即可完成数据的读取。

总之,C++通讯录管理系统的保存与读取功能非常实用,可以帮助用户轻松地管理自己的通讯录。使用文件流进行文件操作的过程也是代码设计的一个重要部分,合理使用文件流能够使代码更加简洁、清晰,提高程序的可读性和可维护性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复