C++:以最简单和最干净的方式将值写入文件?

标签 c++ file struct

我正在做一个 C++ 初学者级别的项目(不是像“什么是循环”这样的绝对初学者,但我也不会说它是中级级别)。

在这个项目中,我需要将一些存储在内存中的结构变量数据保存到一个文件中(这是简单的命令式编程,不涉及 OOP)。

我读过一些关于序列化、使用一些非标准库等的选项。但我需要让它尽可能简单和干净。

到目前为止,我有 2 个结构,非常像这些:

struct client {
    string name;
    string address;
    double phone;
};
struct invoice {
    string client_name;
    double total;
};

我正在寻找类似于 http://www.cplusplus.com/doc/tutorial/files 中提供的示例的内容:

#include <iostream>
#include <fstream>
using namespace std;

int main () {
  ofstream myfile;
  myfile.open ("example.txt");
  myfile << "Writing this to a file.\n";
  myfile.close();
  return 0;
}

有没有一种方法可以做类似的事情,但要将结构变量写入(然后能够读取)文件,并保持简单? 几年前,我记得在将记录写入文件时以一种非常简单的方式在 Pascal 中处理这个问题。类似于:打开文件,写入记录字段 1,写入字段分隔符,写入记录字段 2,写入字段分隔符,写入记录分隔符。然后在阅读时我会搜索分隔符。在 C++ 中不推荐这样做吗?

谢谢。

最佳答案

您可以检查 C++ 的序列化,例如。 Boost::Boost 库中的序列化。

Is it possible to serialize and deserialize a class in C++?

关于C++:以最简单和最干净的方式将值写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32169043/

相关文章:

c++ - OpenCV Blob检测器在找到的位置有偏移

c++ - 不混淆的字符串函数

c++ - 使用符号构建字符串

c - 将文件读入C中的多维字符数组

C编程: String arrays - how to check equality?

c - 如何在 C 中对结构数组进行排序?

c++ - 为什么这段看似简单的 C++ 代码会产生段错误?

c# 打开文件,路径以 %userprofile% 开头

javascript - JS中访问特定URL进行文件读取

C++ 链表不保留新节点