C++文件中的移动文件指针的函数怎么用

我只知道关键字是seekp和seekg,但是参数是什么头文件是文件都不知道。。编程序的时候老是显示seekp 没有定义。。求解,在线等

先说一下C语言中fseek()的功能:
函数原型:int fseek(FILE *fp, LONG offset, int origin)
参数含义:fp 文件指针 offset 相对于origin规定的偏移位置量 origin 指针移动的起始位置,可设置为以下三种情况: SEEK_SET 文件开始位置 SEEK_CUR 文件当前位置 SEEK_END 文件结束位置
C++中seep()和seekg()函数功能

seekp:设置输出文件流的文件流指针位置
seekg:设置输入文件流的文件流指针位置
函数原型:
ostream& seekp( streampos pos );
ostream& seekp( streamoff off, ios::seek_dir dir );
istream& seekg( streampos pos );
istream& seekg( streamoff off, ios::seek_dir dir );
函数参数
pos:新的文件流指针位置值
off:需要偏移的值
dir:搜索的起始位置
dir参数用于对文件流指针的定位操作上,代表搜索的起始位置
在ios中定义的枚举类型:
enum seek_dir {beg, cur, end};
每个枚举常量的含义:
ios::beg:文件流的起始位置
ios::cur:文件流的当前位置
ios::end:文件流的结束位置
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-30
#include <fstream>
#include <iostream>
using namespace std;

其实是在ios中定义的追问

参数怎么设置啊?怎么用啊

追答

seekg成员函数格式
格式1:istream & seekg(long pos);用于在输入文件流中绝对移动读取指针
格式2:istream & seekg(long offset, seek_dir dir);用于在输入文件流中相对移动读取指针
参数:
offset — 指针移动量
dir — 移动基准点,为如下值ios::beg 文件开头、ios::cur 当前位置、ios::end 从文件尾
使用示意:
1. 多次从头操作同一文件:
in.seekg(0) 和 out.seekg(0) 将当前读和写指针指向文件的开始
2. 指向文件的结尾:
in.seekg(0, ios::end) 和 out.seekg(0, ios::end) 将当前读写指针指向文件结尾

seekp成员函数格式
格式1:ostream& seekp(long pos);用于在输出流中绝对移动写入定位指针
格式2:ostream& seekp(long offset, ios::seek_dir dir);用于在输出流中相对移动写入定位指针
参数:
offset — 指针移动量
dir — 移动基准点,为如下值ios::beg 文件开头、ios::cur 当前位置、ios::end 从文件尾
使用方法类似于seekg

本回答被提问者采纳

c++文件指针怎么让它下移动到某内容的那一行
\/*先把所有的读进来,找到需要的那一行,改完以后输出就ok了据说可以根据改文件地址(seekg)偏移,但是不好办*\/char s[16][65535];ifstream fstr("a.txt");fstr.getline(s[1],1024);fstr.getline(s[2],1024);fstr.getline(s[3],1024);fstr.close() ;\/\/在这里查找和更改ofstream ss(...

c++如何实现文件指针从文件末尾后退任意行?
用fseek(fp,0L,SEEK_END);将文件指针移至末尾,然后把文件指针逐字符前移,读到一个换行符就表示后退一行。\/\/伪代码 fseek(fp,0L,SEEK_END);int last=ftell(fp);int linenum=0;for(count=1L;count<=last;count++){ fseek(fp,-count,SEEK_END);ch=getc(fp);if(ch=='\\n'){ linenum++...

c++ 用vc的 怎么将打开的文件中的光标移动到文件开头,我是用fopen(*...
fseek函数 int fseek( FILE *stream, long offset, int origin );第三个参数设置为SEEK_SET 即把文件指针移动到文件开头

C++文件流文件定位
file1.seekg(1234, ios::cur); \/\/ 将file1的读指针从当前位置向后移动1234个字节 file2.seekp(1234, ios::beg); \/\/ 将file2的写指针从文件开头向后移动1234个字节 如果你在Visual C++(vc)编程,可能更倾向于使用CFile类等更为便捷的文件操作工具。这些类封装了底层的细节,使得文件操作更为...

c++读取.txt文件从最后一行往前读数据
文件操作指针,只能够从前往后。不能够倒着读。可以把文件内容挨着读入到字符数组缓存当中,然后倒着操作即可。1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数...

在C++的文件读写中,怎么直接从“下一行”开始读取数据?
由于C++处理文件是以流方式处理,要从下一行开始读取,先要能够将文件内部指针移到下一行,可以通过getline处理。istream inf("text.txt", ios::in);char buf[1000]; \/\/ 申请足够放入一行数据的大小 inf.getline(buf, 1000);这时文件内部指针就移到下一行的开始了。

C++ 中的文件 怎么定位指针 seekg 好像不能
文件输入输出流中定位文件指针的,有两个重载版本 basic_istream& seekg(pos_type _Pos);basic_istream& seekg(off_type _Off, ios_base::seekdir _Way);第一个是直接定位位置_Pos的,第二个是在_Way的基础上偏移_Off个偏移量的。所以你说的seekg(0)的意义就是直接把指针定位在文件首部。

C++中的移动构造函数(move constructor)
C++中的移动构造函数,是一种高效且特殊的构造函数,其设计目的是在可能需要移动内部资源时,快速地将一个对象的内容传递给新对象,而不进行深度复制。对于管理复杂资源的类,如智能指针、动态内存或网络连接,移动构造函数至关重要。移动构造函数的声明通常形式为T::T(T&&),它不应抛出异常,因为其主要...

C++中如何控制流文件中的位置指针? 只需要C++的
\/\/一般是使用seekg函数来控制文件的指针:\/\/打开后默认是指向文件开头 \/\/因此打开后有没有下面这句代码是一样的,下面的代码表示指向文件开头 streamObject.seekg(ios::beg);\/\/指向开头(和streamObject.seekg(0,ios::beg)效果是一样的)streamObject.seekg(ios::end);\/\/指向末尾:streamObject....

C++中freopen函数应该怎么用呢?
freopen用于替换一个文件流指针,它会先关闭原来的,再将指针赋值为新的文件指针。通常用于将标准输入输出该文读写文件。比如想让所有的cin或scanf都是从文件文件读取的话,写:freopen("~filename~","r",stdin)如果想将原来输出到控制台的内容(用cout或printf等),写:freopen("~filename~","w"...

相似回答