2个回答
2016-06-24
展开全部
标准C++提供提供了一个增强的、面向对象的、具有国际化意识的库。这个库包含一系列派生于标准ios_base和ios类的类模板。因此,提供了高级的自动控制机制和健壮性。本文下面将示范如何使用类实现文件的输入/输出处理:第一步:创建文件流 输入文件流(ifstream)支持重载的>>操作符,同样,输出文件流(ofstream)支持重载的#include#include#includeusingnamespacestd;intmain(){strings;cout>s;ifstreamdict(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;//读取以前写入的值
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询