試過CString char* 寫入的都是地址文章來源:http://www.zghlxwxcb.cn/news/detail-644711.html
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向文件寫入了一個(gè)連續(xù)的字節(jié)塊,然而你的結(jié)構(gòu)體包含指向其他地方的指針,所以你存儲(chǔ)的基本上是字符串的地址,而不是字符串本身。
如果你想使用fwrite,你需要讓結(jié)構(gòu)體成為一個(gè)連續(xù)的字節(jié)塊,也就是說,在你的結(jié)構(gòu)體中使用char [],并且保持固定的大小。文章來源地址http://www.zghlxwxcb.cn/news/detail-644711.html
到了這里,關(guān)于MFC 文件讀寫包括字符串的結(jié)構(gòu)體的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!