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 [],并且保持固定的大小。

相关推荐
转基因1 分钟前
C++的IO流
开发语言·c++
程序员zgh1 小时前
Linux 系统调用
linux·运维·服务器·c语言·c++·系统安全
天若有情6731 小时前
打破思维定式!C++参数设计新范式:让结构体替代传统参数列表
java·开发语言·c++
初晴や1 小时前
【C++】图论:基础理论与实际应用深入解析
c++·算法·图论
欧阳x天1 小时前
STL讲解(二)—string类的模拟实现
c++
带土11 小时前
2. Linux下FFmpeg C++音视频解码+推流开发
linux·c++·ffmpeg
星火开发设计1 小时前
C++ set 全面解析与实战指南
开发语言·c++·学习·青少年编程·编程·set·知识
scx201310042 小时前
20260105 莫队总结
c++
Q741_1472 小时前
海致星图招聘 数据库内核研发实习生 一轮笔试 总结复盘(1) 作答语言:C/C++ 链表 二叉树
开发语言·c++·经验分享·面试·笔试
咔咔咔的3 小时前
1970. 你能穿过矩阵的最后一天
c++