<>中关于文件流的问题

metalyt 2004-03-01 11:12:29
我在调试<<c++primer>>p905页程序时,遇到问题一些问题
程序就是读取一个文本文件,依次统计一行内的字节数,将其写在文件末尾.

编译环境 vc2003
程序如下
#include <iostream>
#include <fstream>

int main()
{
using namespace std;

//书中打开文件用的是如下语句,但会文件会打开失败
//fstream inOut("e:\\test.dat",ios_base::in|ios_base::out|ios_base::app);
//ios_base::app 一定要和ios_base::out 一起用,才能实现追加?

//自己的打开语句
fstream inOut("e:\\test.dat",ios_base::in|ios_base::out|ios_base::app);

if(!inOut)
{
cerr<<"can not open file";
return -1;
}


int cnt=0;
char ch;
inOut.seekg(0);

while ( inOut.get( ch ))
{
cout.put( ch );
cnt++;

if ( ch == '\n' )
{
//这句为何提示出错呢?

//ios_base::pos_type mark = inOut.tellg();

int mark = inOut.tellg();

//追加操作时,写入文件,位置总是在文件尾部?
inOut.seekp(1000000);//原文中无此语句,但不加的话就不会追加数据到文件尾部


inOut << cnt<<' ' ;

inOut.seekg( mark ); // restore position
}
}
inOut.clear();
inOut << cnt << endl;
cout << "[ " << cnt << " ]\n";

inOut.close();
cin.get();
return 0;
}
...全文
35 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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