读文件时输入流ifstream中函数tellg()与seekg()的详解与示例
2017-05-23 11:14
609 查看
读取文件时有时会需要回退
比如读完第n行想回退到第n-1行再读一次n行
或者读字符时想回退到n个字符之前
都可以使用tellg()和seekg()
tellg() 用于在输入流中获取位置
seekg()用于设置在输入流中的位置
其实本质上文件读写就是一个指针指向文件中某个位置后进行读写,所以简单来说tellg()和seekg()都是用于设置该指针的位置的。
来个示例:
reference:
http://www.cplusplus.com/reference/istream/istream/tellg/ http://www.cplusplus.com/reference/istream/istream/seekg/
比如读完第n行想回退到第n-1行再读一次n行
或者读字符时想回退到n个字符之前
都可以使用tellg()和seekg()
tellg() 用于在输入流中获取位置
seekg()用于设置在输入流中的位置
其实本质上文件读写就是一个指针指向文件中某个位置后进行读写,所以简单来说tellg()和seekg()都是用于设置该指针的位置的。
//tellg()定义: streampos tellg();//返回一个整型数,代表读指针的位置 //example:streampos pos = tellg();//将tellg()返回的指针位置赋值给pos
//seekg()定义: istream& seekg (streampos pos);//将读指针设置到pos位置 istream& seekg (streamoff off, ios_base::seekdir way);//将读指针设置为way+off,其中off 代表偏移值,而way代表基址
来个示例:
int main() { ifstream in("in.txt"); string line; streampos pos = tellg();//记录当前指针位置 int i = 10; while (i--) {//读到第11行之前 getline(in, line); } in.seekg(pos);//将指针指回第1行,可以重新读一次 return 0; }
reference:
http://www.cplusplus.com/reference/istream/istream/tellg/ http://www.cplusplus.com/reference/istream/istream/seekg/
相关文章推荐
- C++ 输入流 cin/ ifstream/ istringstream 及几个相关函数在遇到文件结束符EOF时的行为
- 转自【北漂民工】C++文件读取操作的全部函数讲解fstream(ofstream/ifstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- ifstream 流 判断文件是否结尾的函数eof()
- 文件操作ofstream,open,close,ifstream,fin,依照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件
- 详解文件操作(ifstream、ofstream、fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- 详解文件操作(ifstream、ofstream、fstream)【转载】
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- ofstream ifstream 文件操作及一些有用的函数
- C++文件读写详解(ofstream,ifstream,fstream)
- 【转】C++文件读写详解(ofstream,ifstream,fstream)
- C++文件读写详解(ofstream,ifstream,fstream)
- 【转】C++文件读写详解(ofstream,ifstream,fstream)
- 文件操作ofstream,open,close,ifstream,fin,按照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件