论坛: 编程破解 标题: 类函数调用fstream声明的文件句柄却不能读入与输出数据?(已解决) 复制本贴地址    
作者: BBL [bbl]    论坛用户   登录
声明文件句柄
fstream iofile("d:\\a.dat",ios::in | ios::out);
-----------------------
BankAcc为类,NewAcc为类函数(添加三个数据形成一行)
-----------------------
调用...
BankAcc temp;
temp.NewAcc(iofile);
-----------------------
void BankAcc::NewAcc(fstream &mm)
{
BankAcc NBankAcc;
int number;
number=GetNumber();//这里调用GetNumber是取得一个序号,来实现随机读写文件,这里的实现过程没问题!
mm.seekg((number-1)*sizeof(BankAcc));
mm.read(reinterpret_cast<char *>(&NBankAcc),sizeof(BankAcc));//这里不能读入数据,为什么?
if(NBankAcc.AccNo==0)
{
cout<<"Now you input the NAME:";
cin>>NBankAcc.AccName;
cout<<"Now you input the MONEY:";
cin>>NBankAcc.AccMoney;
NBankAcc.AccNo=number;
mm.seekp((number-1)*sizeof(BankAcc));
mm.write(reinterpret_cast<const char *>(&NBankAcc),sizeof(BankAcc));//这里就不能写入数据,为什么?
    cout<<NBankAcc.AccNo<<' '<<NBankAcc.AccName<<' '<<NBankAcc.AccMoney<<endl;
}else
{
cout<<"The Account #"<<number<<" is already!"<<endl;
}
}

请各位帮我想想为什么读写不了文件......我快想爆脑袋了..


[此贴被 BBL(bbl) 在 11月18日23时25分 编辑过]


[此贴被 BBL(bbl) 在 11月18日23时26分 编辑过]


[此贴被 BBL(bbl) 在 11月18日23时26分 编辑过]

地主 发表时间: 06-11-17 22:41

回复: NetDemon [netdemon]   ADMIN   登录
一看见C++的代码,我的脑袋就已经爆了

B1层 发表时间: 06-11-18 00:49

回复: BBL [bbl]   论坛用户   登录
天哪..我一看是NetDemon回的就高兴得答案应是解决了..但没想到他一看就头大...天呀...286等大哥们救命呀..

B2层 发表时间: 06-11-18 15:41

回复: BBL [bbl]   论坛用户   登录
哈哈哈....偶自己解决了...没想到只要耐心地试---总会成功的....
解决方法:
在mm.read(reinterpret_cast<char *>(&NBankAcc),sizeof(BankAcc));加入新行写:mm.clear()清除流中的错误标志就OK了(明明就没错误为什么还会置错误标志呢...搞得我最后才想到不凡用clear一下..没想到真行....)...

我也不知为什么读取时会把"遇到结束符mm.eof()"与"流中发生错误mm.fail()"设错误值(谁能解释下...)

高兴死我了..这个问题已烦了我三天了...哈哈哈..对C++又加深了解了...

B3层 发表时间: 06-11-18 23:25

回复: NetDemon [netdemon]   ADMIN   登录


恭喜恭喜

B4层 发表时间: 06-11-20 00:24

回复: BBL [bbl]   论坛用户   登录
谢谢...感动中..

想到C++的问题我就上20cn求解,虽然我经常去unix社区中的C++版块....但我一直信赖的就是[20cn]+[Google搜索]+[baidu搜索],所以我一有自己解决不了的C++问题就会想到20cn.虽然这个问题在20cn得不到解答(这个问题我就只在20cn求解,呵呵,就是不想去别的地方问),但我对20cn(去过黑客站点无数,但不知怎么地我到现在对20cn就是忘记不了)还是一样充满着一种寄盼......呵呵...


[此贴被 BBL(bbl) 在 11月20日12时01分 编辑过]

B5层 发表时间: 06-11-20 12:00

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号