本文主要介绍C seekg函数的使用案例的详细说明。本文通过一个简单的案例来说明对这项技术的理解和使用。以下是详细内容,有需要的朋友可以参考一下。
C++ seekg函数用法详解
很多时候用户可能会这样做,打开一个文件,处理其中的所有数据,然后将文件倒回开头,再次处理,但这可能有点不同。例如,用户可能要求程序搜索数据库中某一类型的所有记录,当找到这些记录时,用户可能希望搜索数据库中其他类型的所有记录。
file stream类提供了许多不同的成员函数,可以用来移动文件。其中一种方法如下:
seekg(偏移量,位置);
这个输入流类的成员函数的名称seekg由两部分组成。首先在文件中查找某个地方,然后‘g’表示‘get’。indicator函数作用于输入流,因为它想从输入流中获取数据。
要查找的文件中的新位置由两个形参给出:新位置将从place给出的起始位置开始,偏移偏移量字节。Offset参数是long类型的整数,而place可以是ios类中定义的三个值之一。起始位置可以是文件的开头、文件的当前位置或文件的结尾。这些地方分别用常量ios:beg、ios:cur和ios:end表示。
关于在文件中移动的更多信息将在后面的章节中给出。目前,我们将重点讨论如何移动到文件的开头。要移动到文件的开头,可以使用下面的语句:
seekg(0L,IOs:beg);
上面的语句意思是从文件的开头移动0个字节,实际上就是移动到文件的开头。
请注意,如果它当前位于文件的末尾,您必须在调用此函数之前清除文件末尾的标志。因此,为了移动到文件流dataln的开头并正好读到结尾,需要使用下面两条语句:
data in . clear();
dataIn.seekg(0L,IOs:beg);
下面的程序演示了如何倒回文件的开头。它首先创建一个文件,写入一些文本,然后关闭文件;然后打开文件进行输入,一次读到末尾,倒回文件开头,然后再读一遍:
//程序显示如何倒回文件。它写一个文本文件,打开它阅读,然后倒带
//从头开始读一遍。
#包括iostream
#包括fstream
使用命名空间std
int main()
{
//每次一个字符地读写文件所需的变量char ch
fstream ioFile('rewind.txt ',IOs:out);
//打开文件。
如果(!ioFile)
{
cout“尝试创建文件时出错”;
返回0;
}
//写入文件并关闭
所有好狗都会咆哮,吠叫,吃东西endl
iofile . close();
//打开文件
ioFile.open ('rewind.txt ',IOs:in);
如果(!ioFile)
{
cout“试图打开文件时出错”;
返回0;
}
//读取文件并回显到屏幕
iofile . get(ch);
而(!ioFile.fail())
{
cout . put(ch);
iofile . get(ch);
}
//倒带文件
iofile . clear();
ioFile.seekg(0,IOs:beg);
//再次读取文件并回显到屏幕
iofile . get(ch);
而(!ioFile.fail())
{
cout . put(ch);
iofile . get(ch);
}
返回0;
}
程序输出结果:
所有的好狗狗
咆哮,吠叫,吃东西。
所有的好狗狗
咆哮,吠叫,吃东西。
本文关于C seekg函数使用案例的详细说明到此为止。有关C seekg函数的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。