VC操作文件

cokeliu 2011-05-13 10:05:04
我在一个工程中打开一个文件并读取数据后close然后再打开并写就出错.
void CMainFrame::OnProSave()
{
// TODO: Add your command handler code here
CFile file;
file.Open(CurrentProject.Path + "\\" + CurrentProject.name + ".cfg",CFile::modeRead,0);

// 读取cfg文件头信息
// file.Read(CurrentProject.TheProject.CFG_File.Data,CFG_HEAD);
// CurrentProject.TheProject.AllConsol = (Console*)malloc(sizeof(Console) * (CurrentProject.TheProject.CFG_File.CFG_Content.Single_Number + CurrentProject.TheProject.CFG_File.CFG_Content.Group_Number));//申请一个内存存放控制台信息

//读取控制台信息
file.Seek(CFG_HEAD,CFile::begin); //从文件头开始往下移动41字节(cfg文件头信息)
file.Write(CurrentProject.TheProject.AllConsol, sizeof(Console) * (CurrentProject.TheProject.CFG_File.CFG_Content.Single_Number + CurrentProject.TheProject.CFG_File.CFG_Content.Group_Number));

file.Close();
}
运行到file.Write(.......)就提示:
Access to D:.... was denied.
我注释Wirte操作后就没问题. 我看了该文件也没有被写保护.
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cokeliu 2011-05-13
  • 打赏
  • 举报
回复
是的. 我搞错了. 谢谢!
wfq0987 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 visualeleven 的回复:]
file.Open(CurrentProject.Path + "\\" + CurrentProject.name + ".cfg",CFile::modeRead,0);

file.Write(CurrentProject.TheProject.AllConsol, sizeof(Console) ....
---------------------------
写成CFile::……
[/Quote]

楼上正解。
Eleven 2011-05-13
  • 打赏
  • 举报
回复
file.Open(CurrentProject.Path + "\\" + CurrentProject.name + ".cfg",CFile::modeRead,0);

file.Write(CurrentProject.TheProject.AllConsol, sizeof(Console) ....
---------------------------
写成CFile::modeReadWrite,或者CFile::modeRead | CFile::modeWrite
黑泡泡选手 2011-05-13
  • 打赏
  • 举报
回复
你读操作还没关闭呐,就开始写操作!

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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