书上的一个小题:但我运行的结果总是不对!

crescent1999 2003-10-26 10:08:36
//文件名:CHAPTER2-12.cpp
#include<fstream.h>
#include<iostream.h>
#include<process.h>
void main()
{
int i=30;
float f=12.34;
char c;
fstream fl("sf",ios::out|ios::in);
if(!fl) {cerr<<"The File Open Error."<<endl; exit(255);}
fl<<"I="<<i<<" ;F="<<f<<endl;
fl.seekp(ios::beg); //指针回文件首
fl>>c>>c; //字符串"I="读出后不使用
fl>>++i; //i加1后从盘上读出i仍为30
cout<<i<<endl;
fl<<i; //我的输出总是0

cin>>i;
}
书上的结果是30但我运行的结果总是0
另外: fl>>c>>c;//字符串"I="读出后不使用
怎么解释??
...全文
32 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
crescent1999 2003-10-27
  • 打赏
  • 举报
回复
改为fl.seekp(0,ios::beg);就可以了
是不是有bug?

GeoPhoenix(天鸽) 那个贴子在哪里?
warton 2003-10-27
  • 打赏
  • 举报
回复
fl.seekp(ios::beg);
到底定位到那里了?是否有bug?
warton 2003-10-27
  • 打赏
  • 举报
回复
文件里要写入内容的呀
前面两个字符是:"I=",所以要把这两个字符扔掉
结果是读的30中的零吧,如果改成f1>>c;就是读的30了。

但觉得好像不应该是这样的??(我也没这样用过!)
yjy1001 2003-10-27
  • 打赏
  • 举报
回复
什么书?
GeoPhoenix 2003-10-26
  • 打赏
  • 举报
回复
fl.seekp(ios::beg);
这一句记得前面有一个帖子说存在bug不知毛病是否也是在这里,文件没有定位到文件头,
我一般不使用这个方式,你先看看。
crescent1999 2003-10-26
  • 打赏
  • 举报
回复
运行时需要在当前目录下建立一个文件名为sf的文件

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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