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

相关推荐
Ljw...1 分钟前
C++发展
c++·c++11·c++98·c++发展
进击的编程浪人29 分钟前
c++中的vector
开发语言·c++·算法
阿巴~阿巴~39 分钟前
好数——前缀和思想(题目分享)
c++·算法
iiiiiankor1 小时前
C与C++中inline关键字的深入解析与使用指南
c语言·c++
_zwy1 小时前
【C++ 函数重载】—— 现代编译技术下的多态表达与性能优化
c语言·开发语言·汇编·c++
菜_小_白4 小时前
C++理解(六)
linux·开发语言·c++
慕容晓开11 小时前
c++,优先队列
数据结构·c++·算法
Neil__Hu12 小时前
Go的基本语法学习与练习
java·c语言·c++·python·qt·学习·golang
彬sir哥12 小时前
水仙花数(华为OD)
java·c语言·javascript·c++·python·算法
别NULL12 小时前
机试题——通讯录合并
c++·算法