MFC写入文件

全局定义了1个结构体structstudent{chara1[4];chara2[4];chara3[4];chara4[4];chara5[4];}st1;按纽事件中代... 全局定义了1个结构体
struct student
{
char a1[4];
char a2[4];
char a3[4];
char a4[4];
char a5[4];

}st1;

按纽事件中代码如下:
memcpy(st1.a1,m_name,4);
memcpy(st1.a2,m_sex1,4);
memcpy(st1.a3,sub11,4);
memcpy(st1.a4,str,4);
memcpy(st1.a5,str1,4);
MessageBox(st1.a1);

fstream is("student",ios::binary);
is.write((char*)&st1,sizeof(student));
is.close();

文件写不进去,求解啊!!!!好人帮帮忙吧
大哥 你这回答。。
展开
 我来答
vrrcc
2009-12-30 · TA获得超过163个赞
知道答主
回答量:55
采纳率:0%
帮助的人:0
展开全部
程度没有什么问题,只用把fstream is("student",ios::binary);这个修改为ofstream is("student",ios::binary);就可以了。
pjl110
2009-12-18 · TA获得超过587个赞
知道小有建树答主
回答量:285
采纳率:0%
帮助的人:98.8万
展开全部
没想到这200分会被我赚到!


fstream is("student",ios::binary);
改成
ofstream is("student",ios::binary);
就能写入了。

下面是我在2005上给你实现的代码:

=========================================
include<fstream>

......

using namespace std;

struct student
{
char a1[4];
char a2[4];
char a3[4];
char a4[4];
char a5[4];

}st1,st2;

void CmfcwriteDlg::OnBnClickedButton1()
{
memcpy(st1.a1 ,"jac",sizeof(4));
memcpy(st1.a2 ,"ja1",sizeof(4));
memcpy(st1.a3 ,"ja2",sizeof(4));
memcpy(st1.a4 ,"ja3",sizeof(4));
memcpy(st1.a5 ,"ja4",sizeof(4));

ofstream os("students");
os.write ((char*)&st1,sizeof(student));
os.close ();

//下面是读取的方法,赠送的
ifstream is("students");
is.read ((char*)&st2,sizeof(student));
is.close ();
::MessageBoxA (NULL,st2.a1,"A",MB_OK);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞_的更高
2009-12-09
知道答主
回答量:12
采纳率:0%
帮助的人:0
展开全部
你的fstream对象的参数设置不对,你的第二个参数默认是打开方式的一种,怎么能够写入呢?你可以换成 fstream is("student",ios::binary||ios::out);详细的用法可以去网上搜索一下。
还有就是那个write函数的第一个参数,由于你要写入的是一个结构体,而参数要求是一个字符指针,虽然你做了强制转换,但是在写入的时候可能会出现数据丢失,建议使用循环,对结构体的成员分别写入。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无知_小孩o
2009-12-09 · TA获得超过1118个赞
知道小有建树答主
回答量:206
采纳率:0%
帮助的人:0
展开全部
不会写不进去的啊,是不是你写的东西太小了,还在缓存中??如果是这样的话,你最好在写完文件为关闭之前,把缓存强行Flush一下!

或者是你写到其他地方去了而自己还在工程目录里面找文件,所以没有找到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Panda_lj
2009-12-15 · TA获得超过1155个赞
知道答主
回答量:84
采纳率:0%
帮助的人:79.5万
展开全部
那就别用结构体 用那个CSstdioFile和CFile试试 感觉那样比较简单。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
waryerrr
2009-12-27
知道答主
回答量:19
采纳率:0%
帮助的人:0
展开全部
fstream is("student",ios::binary);错啦
改成ofstream is("student",ios::binary);
就OK啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式