注册 登录
编程论坛 C++教室

一个关于文件操作的问题

huanguyu 发布于 2007-01-18 16:54, 425 次点击

运行下面代码后发现 第2个while循环不能执行 经过第一个循环后是已经达到文件尾部 可是fin.seekg(0,ios::beg);不是可以移动当前指针到文件头吗 怎么失败了 该怎么改才可以实现第2个循环


#include <fstream>
#include <iostream>
using namespace std;

int main()
{
ifstream fin;

char c;
fin.open("input.txt");

while( !fin.eof() )
{
fin>>c;
}

fin.seekg(0,ios::beg);

while( !fin.eof() )
{
fin>>c;
cout<<c<<endl;
}

return 0;
}

1 回复
#2
tyc6112007-01-21 01:23
这是因为第一个循环退出时,eofbi标志位被设置了,此时若要继续使用文件流,需要调用clear()清除该标志位,即在第二个循环前加上fin.clear();即可。
1