在多字符集情况下,用CFile如何实现将CString转为具有16个字符的char[]然后存入二进制文件中?

来源:百度知道 编辑:UC知道 时间:2024/05/02 18:08:33
在MFC中
定义
struct Data
{
char a[16];
char b[16];
}
Data aa;
用CString CStr1,CStr2赋值给aa.a和aa.b后,存入二进制文件data.dat中。
再从data.dat文件用CFile读取aa,并使aa中的a,b转为CString,a与CStr1相同,b和CStr2相同。
但是在data.dat文件尾再写入aa后,然后读取,所得的aa.a转为CString后与CStr1不相同,aa.b的情况也相同。
我试过存了两个Data结构的数据后,再存多一个的时候数据会出错~很疑惑

你把你的代码贴出来,否则谁知道你究竟哪儿错了啊。

strcpy(aa.a, (const char*)CStr1);
strcpy(bb.b, (const char*)CStr2);

CFile file("data.dat", CFile::modeCreate|CFile::typeBinary);
file.Write(&aa, 32);
file.Close();

file.Open(("data.dat", CFile::modeRead|CFile::typeBinary);
file.Read(&aa, 32);
CStr1 = aa.a;
CStr2 = aa.b;

cstring to char[]

CString str("abc");
char str1[];
str1[]=(LPSTR)(LPCTSTR)str;

用CFile我不得行!C/C++我倒能实现!