gpt4 book ai didi

c++ - 二进制读/写运行时失败

转载 作者:搜寻专家 更新时间:2023-10-31 01:22:53 25 4
gpt4 key购买 nike

我研究过用 C++ 进行二进制读写对象,但遇到了一些问题。它“有效”,但除此之外我还得到大量错误/“信息”输出。

我做的是

Person p2;

std::fstream file;
file.open( filename.c_str(), std::ios::in | std::ios::out | std::ios::binary );
file.seekg(0, std::ios::beg );
file.read ( (char*)&p2, sizeof(p2));
file.close();
std::cout << "Name: " << p2.name;

Person 是一个包含string nameint age 的简单结构。当我运行该程序时,它会输出“姓名:Bob”,因为我已经编写了一个程序来写入文件(因此该对象已经在文件名中)。

除了输出名称外,它还输出:

* 检测到 glibc * 程序:double free og corruption (fastttop): ***

回溯:

...

内存映射:

...

中止

最佳答案

Person结构体中的name字符串是字符数组还是STL字符串?您不能通过二进制读取数据来填充 STL 字符串,因为数据格式不可序列化(包含指针)

关于c++ - 二进制读/写运行时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2379634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com