求教VS2012的MFC中使用CArchive类为什么会出问题

xyzinfernity 2014-05-26 05:08:18
以前一直没用过CArchive都是用C++自己的fstream,刚才调试一个同学程序的时候看到使用了CArchive类于是找了资料写了下代码运行发现出问题,而且不论是否使用Unicode都是乱码。
void CTestDoc::OnAppAbout()
{
// TODO: 在此添加命令处理程序代码
CFile file(L"1.txt", CFile::modeCreate | CFile::modeWrite);
CArchive ar(&file, CArchive::store);
int i = 4;
char ch = 'a';
float f = 1.3f;
CString str("hello");
ar << i << ch << f << str;
}

结果是
新建了一个不使用Unicode的工程
void CMFCApplication1Doc::OnAppAbout()
{
// TODO: 在此添加命令处理程序代码
CFile file("1.txt", CFile::modeCreate | CFile::modeWrite);
CArchive ar(&file, CArchive::store);
int i = 4;
char ch = 'a';
float f = 1.3f;
CString str("你好");
ar << i << ch << f << str;
}


结果在记事本里还是乱码

写入时也会出错(C:1.txt里是hello world!)
void CTestDoc::OnAppAbout()
{
CFile file(L"C:\\1.txt", CFile::modeRead);
CArchive ar(&file, CArchive::load);
CString str;
ar.ReadString(str);
// ar >> str;
AfxMessageBox(str);
}

使用ReadString的结果是
使用>>直接就报错【访问未命名的文件时尝试越过其结尾】
想了半天没想出什么问题
...全文
194 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧