MFC 文件读写包括字符串的结构体

试过CString char* 写入的都是地址

cpp 复制代码
struct Param{
	int ID;
	int index;
	char val[128];
};

vector<Param>ans;
UINT count = 17;
ans.resize(count);
FILE* fp;
fopen_s(&fp,_T("my.txt"),_T("rb"));
if(count != fread(&ans[0],sizeof(Param),count,fp)){
	AfxMessageBox("1");
}

它不起作用的原因是fwrite向文件写入了一个连续的字节块,然而你的结构体包含指向其他地方的指针,所以你存储的基本上是字符串的地址,而不是字符串本身。

如果你想使用fwrite,你需要让结构体成为一个连续的字节块,也就是说,在你的结构体中使用char \[\],并且保持固定的大小。

相关推荐
峥无20 小时前
C++11 深度详解:现代 C++ 基石全梳理
开发语言·c++·笔记
阿米亚波20 小时前
【C++ STL】std::unordered_multimap
开发语言·数据结构·c++·笔记·stl
小王C语言20 小时前
【3. 基于 Vibe Coding 的 OJ 平台】. 构建仓库、环境准备、需求梳理、安装依赖
网络·c++
小王C语言21 小时前
【8.进行接口测试】:通过 curl 进行接口自动化测试 / 通过 python 程序进行接口自动化测试
网络·c++
888CC++1 天前
C++ 快速学习指南:从入门到进阶的实战路线
开发语言·c++
小小晓.1 天前
C++记:函数
开发语言·c++·算法
驱动小百科1 天前
Windows运行库合集下载 VC++、DirectX、.NET运行库安装教程
c++·windows·.net·windows运行库合集下载·windows运行库安装
charlie1145141911 天前
Cinux —— 给物理内存建账本:bitmap 物理内存管理器
开发语言·c++·操作系统·开源项目
2301_777998341 天前
Linux线程同步与互斥(三):信号量与环形队列实现生产者消费者模型
linux·c语言·c++
啦啦啦啦啦zzzz1 天前
设计模式:单例模式和工厂模式
c++·单例模式·设计模式·工厂模式