在C++ txt文件操作中,如何保存读取文件位置

2025-02-24 02:00:42
推荐回答(2个)
回答1:

可以让你第一个函数返回一个已经读取到的位置,修改你第一个函数如下
long text() //输入前20个字符
{
char ch;
long pos = 0;
fstream file("work.txt");
for(int i=0;i<20;i++)
{
file>>ch;
cout<}
pos = file.tellp(); //保存当前读取的位置
return pos; //返回当前已经读取了多少个字符(虽然目前你只读取了20个)
}

在调用函数的时可以用一个变量来保存当前已经读取到那个位置

long pos = text();

第二个函数这样改,从pos位置开始读取

void text2(long pos)
{
char ch;
fstream file2("work.txt");
file2.seekp(pos+1);//设置从pos+1位置开始读(当然可以设置成pos,看你自己怎么用了)
file2>>ch;
cout<}
然后这样调用第二个函数

text2(pos);

这样就可以实现你的目的了

回答2:

要随机读取文件就用fseek()函数啊
可以这样写:
fseek(file2,20L,SEEK_SET) 或者 fseek(file2,20,0);
函数原型
int fseek( FILE *stream, long offset, int origin );
第一个参数为文件指针,第二个为偏移字节数(负数表示回退),第三个为参照位置,可以取三个值:
SEEK_SET 0
SEEK_CUR 1
SEEK_END 2
有了这个函数想从哪里开始读就从哪里开始读