c++流怎么把流指针从新定位到文件头?

我想在读文件时,把指针返回到文件开始部分,到底怎么弄啊?
具体点,我试不出来...老有问题

假如你打开的文件流名字是file1
如果你的文件流处在正常状态的时候要回去文件头:file1.seekg(0);
如果文件头处在非正常状态(比如读到了文件尾或者出错),先执行file1.clear();再file1.seekg(0);
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-07-13
1.seekg 输入流
语法:
istream &seekg( off_type offset, ios::seekdir origin );
istream &seekg( pos_type position );
函数seekg()用于输入流,并且它将重新设置"get"指针到当前流的从origin偏移offset个字节的位置上,或是置"get"指针在position位置。

2.seekp 输出流
语法:
ostream &seekp( off_type offset, ios::seekdir origin );
ostream &seekp( pos_type position );
seekp()函数用于输出流,但在其它方面和seekg()很类似。
第2个回答  2008-12-03
用这个rewind(fp)就可以了。

rewind这个函数就是把文件指针置到文件的起始位置。

【C++】 文件指针回到开头
在定位前对流状态标志进行清除就可以了:inf.clear();inf.seekg(0,ios::beg);还有一种解决办法是 inf.close();inf.open(file1,ios::in|ios::binary); 关闭文件,然后再打开该文件

c++中如何用指针指向文件开头
用seekg()函数即可,如:ifstream inputStream("file.txt");\/\/ 使用部分 inputStream.seekg(0);\/\/回到文件头

C++读取文件如何实现从头开始再读一遍
seekg用于输入文件(ifstream)指针移到指定位置,如:seekg(0,ios::beg) 指针移向文件开头。seekp用于输出文件(ofstream)。移到开头后就可以往下读,用eof()判断文件是否读到了结尾。如:while(!file.eof())。

C++中如何控制流文件中的位置指针? 只需要C++的
fstream streamObject("example.txt");\/\/首先定义一个流对象,并指定一个文件连接:\/\/然后是控制指针,也就是楼主你想要的答案,\/\/一般是使用seekg函数来控制文件的指针:\/\/打开后默认是指向文件开头 \/\/因此打开后有没有下面这句代码是一样的,下面的代码表示指向文件开头 streamObject.seekg(ios::beg...

C++文件流文件定位
文件定位在C++中具体表现为对读位置(read pointer)和写位置(write pointer)的调整,这分别通过成员函数seekg()和seekp()来实现。它们的基本用法如下:istream &seekg(streamoff offset, seek_dir origin);ostream &seekp(streamoff offset, seek_dir origin);其中,streamoff是一个在iostream.h中定义的...

C++中当文件关闭后第二次在打开是,文件指针是回到文件开头,还是留着...
文件指针不是记录在文件系统内的,而是程序自己维护的一个位置信息,关闭后,文件对象销毁,这个信息自然也不复存在,第二次打开,肯定不会记录上次操作的位置,如果是标准c库的FILE系列函数,根据打开模式,如果是追加模式,则在文件尾,其他模式,在文件头。如果是win32api或者linux\/unix系统函数等,则...

c++如何回到文件头
不是有一个rewind(p)函数吗,调用它后,p就指向文件头,p是指向文件的指针

C++ 读文件如何定位到某一行?
C++不支持直接定位到某一行。不过可以通过先定位到文件开始,然后把之前所有行均读出的方式,使文件定位到具体行。具体代码如下:ifstream & seek_to_line(ifstream & in, int line)\/\/将打开的文件in,定位到line行。{ int i; char buf[1024]; in.seekg(0, ios::beg); \/\/定位到文...

C++怎么把程序输出的数据写入txt文档中
函数名:freopen头文件:cstdio 返回值:成功,则返回一个path所指定的文件的指针。失败,返回NULL。(一般都不使用它的返回值)功能:简单说,就是实现重定向。把预定义的几个标准流文件(stdin, stdout, stderr)定向到由path指定的文件中。在主函数最开头写 freopen("1.txt","w",stdout);主函数...

C++光标定位问题,求助
计算出txt文本里从开始到80行80列有多少个字符,然后用fseek函数将文件指针定位过去 fseek函数fseek(fp,offset,SEEK_SET)参数1是文件指针,参数二说明从参数三指定的位置将指针移动offset个单位,参数三SEEK_SET则是说明指针从文件头开始移动(此外还有SEEK_END,SEEK_CUR两种可选,分别是从文件末尾移动和...

相似回答