c++ - 如何在加载/保存功能中读取文件?

标签 c++ file function

我知道标题有点乱,但我不知道怎么解释。

void save (POINT pt)
    {
    ofstream save;
    save.open("coords.txt", ios::trunc);

    if (save.is_open())
    {
        save << pt.x << endl;
        save << pt.y;

        save.close();

        system("CLS");

        cout << "Save successful\n\n\n\n";

        system("PAUSE");
    }

    else
    {
        system("CLS");

        cout << "Error: Could not save\n\n\n\n";

        system("PAUSE");
    }
    }

    int load ( )
    {
        ifstream load;
        load.open("coords.txt", ifstream::in);

        if (load.is_open())
        {

        }
    }

我想从加载函数内部的保存函数中读取POINT。我试过了

 if (load.is_open())
    {
        load >> pt.x;
        load >> pt.y;
    }

但是 pt.xpt.y 是未定义的。我不是很擅长这个,但我正在努力理解它。

提前致谢!

最佳答案

使用普通(标准)iostream 对象进行序列化/反序列化会导致很多痛苦。

我建议您使用一些高级序列化库,例如 boost::archive::binary_oarchiveboost::archive::binary_iarchive ( link to the doc )。

它非常易于使用,避免了很多问题,并让您有机会发现一个非常有用的 C++ 库。

参见 this post获取更多信息。

关于c++ - 如何在加载/保存功能中读取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16870384/

相关文章:

C++ 将逻辑运算符函数分配给变量

c++ - 避免并发访问变量

file - 批处理文件正则表达式以查找名称中带有数字的文件

java - 使用 JFIleChooser 在 Java 中创建 Open 函数

Java:从非常大的文本文件中读取具有相同前缀的行组

mysql - Hibernate 按位运算函数未注册

c - 再玩一次函数c

c++ - 我需要一个使用 OpenCV 比较 2 个面孔(UIimage )并通过 IOS 获取距离的示例

c++ - 这里使用了哪个 std::vector 构造函数?

c++ - QListWidget::itemChanged 信号在 qt 中触发了两次