我们老师让我们做个课程设计,但他什么也不指导,完全就是一片空白啊~好了,不废话了,进入主题。
就是我在做信息输入功能时,想把输入的信息再输出到文件中,创建一个名为“manager.txt”的文档。编译是通过了,但是在运行的时候,输入完信息再点确定。就说OX10211901a指令引用的Oxccccccccc内存。该内存不能为written.网上大都是说指针越界或数组溢出神马的~因为刚接触这种东西~完全不懂。求高手指教。这是这一段的代码:CManagerDLG objM;
if(objM.DoModal()==IDOK){ Employee JL;
vector<Employee*> JLmanager;
JLmanager.push_back(&JL); vector<CString> JLstr;
JLstr.push_back(objM.m_strJLXM);
JLstr.push_back(objM.m_strJLXB); JLmanager[0]->SetName((char*)(LPCTSTR)JLstr[0]);
JLmanager[0]->SetGender((char*)(LPCTSTR)JLstr[1]);
JL.SetNum(objM.m_intJLBH);
JL.SetSalary(objM.m_floatJLGZ);
ofstream ofile("ewq.txt",ios::out);
ofile<<"经理姓名:"<<JL.GetName()<<"经理编号:"<<JL.GetNum()<<"经理性别:"<<JL.GetGender()<<"经理工资:"<<JL.GetSalary();
ofile.close();}
}
就是我在做信息输入功能时,想把输入的信息再输出到文件中,创建一个名为“manager.txt”的文档。编译是通过了,但是在运行的时候,输入完信息再点确定。就说OX10211901a指令引用的Oxccccccccc内存。该内存不能为written.网上大都是说指针越界或数组溢出神马的~因为刚接触这种东西~完全不懂。求高手指教。这是这一段的代码:CManagerDLG objM;
if(objM.DoModal()==IDOK){ Employee JL;
vector<Employee*> JLmanager;
JLmanager.push_back(&JL); vector<CString> JLstr;
JLstr.push_back(objM.m_strJLXM);
JLstr.push_back(objM.m_strJLXB); JLmanager[0]->SetName((char*)(LPCTSTR)JLstr[0]);
JLmanager[0]->SetGender((char*)(LPCTSTR)JLstr[1]);
JL.SetNum(objM.m_intJLBH);
JL.SetSalary(objM.m_floatJLGZ);
ofstream ofile("ewq.txt",ios::out);
ofile<<"经理姓名:"<<JL.GetName()<<"经理编号:"<<JL.GetNum()<<"经理性别:"<<JL.GetGender()<<"经理工资:"<<JL.GetSalary();
ofile.close();}
}
解决方案 »
- 带有CheckBox的CListCtrl中Check全部选中?
- 关于socket几个问题,同步,异步,阻塞,非阻塞.
- 如何实现这样的效果,高手进!
- 帮我看看哪里错了吗??
- 类似qq程序的问题,急急急???
- 【·····VC/MFC 编程经验总结11····】
- fatal error C1083: Cannot open source file: 'F:\暑假项目\利用JMail组件快速构建邮件程序\MulNotice\MulNotice.odl': No such file or
- 请问一个音频流处理技术问题
- 如何用malloc
- 每当有人问及哪本书是学习C++的首选参考书时,好象很多人都会推荐《Thinking in C++》,所以我有几个问题想请教以下,请各位高手近来讨论:
- 计算器的退格键要怎么实现
- 请教CSV转EXCEL 0开头则消失的问题或者让EXCEL中单引号不显示!
JL是局部变量,出了代码块就销毁了,用指针
应该new出来。也可以这样使用容器:
vector<Employee> JLmanager;这就要求你的Employee实现好深拷贝构造函数(如果没有需要深拷贝的东西,就不用实现,由编译器自动生成)
JLmanager[0]->SetGender((char*)(LPCTSTR)JLstr[1]);不要直接用下标来访问vector,用iterator
vector<Employee*>::iterator it = JLmanager.begin();
if (it != JLmanager.end())
{
it->SetName((char*)(LPCTSTR)JLstr[0]);
}