在c++中的文件写入时控制写入位置

在c++中的文件写入时控制写入位置,第1张

标准C++提供提供了一个增强的、面向对象的、具有国际化意识的库。这个库包含一系列派生于标准ios_base和ios类的类模板。因此,提供了高级的自动控制机制和健壮性。本文逗瞎下面将示范如何使用类实现文件的输入/输出处理:第一步:创建文件流输入文件流(ifstream)支持重载的凯宽>> *** 作符,同样,输出文件流(ofstream)支持重载的#include#include#includeusingnamespacestdintmain(){stringscout>sifstreamdict(s.c_str())if(!dictionary)//werethereanyerrorsonopening?exit(-1)while(dictionary>>s)cout>会自动处理。此外,我们不用显式地关闭此文件,因为析构函数会为我们做这件事情。过时和荒废的库支持ios::nocreate和ios::noreplace标志。但新的库已经取代了并不再支持这两个标志。文件的打开模式如果你不显式指定打开模式,fstream类将使用默认值。例如,ifstream默认以读方式打开某个文件并将文件指针置为文件的开始处。为了向某个文件写入数据,你需要创建一个ofstream对象。定义了下列打开模式和文件属性:ios::app//从后面添加ios::ate//打开并找到文件尾ios::binary//二进制模式I/O(与文本模式相对)ios::in//只读打开ios::out//写打开ios::trunc//将文件截为0长度你可以用位域 *** 作符OR组合这些标志:ofstreamlogfile("login.dat",ios::binary|ios::app)fstream类型对象同时支持读和写 *** 作:fstreamlogfile("database.dat",ios::in|ios::out)第二步:设置文件的位置文件具备一个逻辑指针,它指向该文件中的某个偏移位置。你可以通过调用seekp()成员函数,以字节为单位将这个指针定位到文件的任意位置。为了获取从文件开始处到当前偏移的字节数,调用seekp()即可。在下面的例子中,程序将文件位置前移10个字节,然后调用tellp()报告新位置:ofstreamfout("parts.txt")fout.seekp(10)//从0偏盯指亮移开始前进10个字节cout> *** 作符。下面的例子示范了这些 *** 作符的使用方法:fstreamlogfile("log.dat")logfile>login>>user//读取以前写入的值

文件打开时穗慧,其文件指针就是指向文件头的。

文件的相关 *** 作,比如读或写,都会导致文件指针的移动。

如果想让文件圆正指针回到文猜腔答件头,可以先把文件关闭,调用close方法。

然后再一次打开文件,open方法。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12213940.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存