首页 > 其他 > 详细

文件操作的一些函数

时间:2015-05-10 21:52:29      阅读:133      评论:0      收藏:0      [点我收藏+]

    istream& read(char* s, streamsize n):从流中读取n个字符放到s指向的数组中,读取过程中不会检查数据(意味着读取到空格或者
    换行符不会停止读取),也不会自动添加一个null作为字符串结束符,如果碰到EOF则函数结束,并置eofbit和failbit为1;如果流中
    的字符数目超出了指定数目,则剩下的字符依然保存在流中,见3.cpp
   
    ostream& write(const char* s, streamsize n):从s指向数组中取出n个字符放到流中,提取过程中不会检查数据(意味着即使读取
    的是null也不会停止提取),见3_plus_1.cpp
   
    steamsize gcount() const:返回上一次非格式化提取运算符所读取的字符数,即返回的是get()、getline()、ignore()或者read()
    函数所读取的字符数,而不能用于提取operator>>()函数所提取的字符数,见3_plus_2.cpp及3_plus_3.cpp
    注:对于get()函数,读取的是n-1个字符;对于getline()函数,如果第n个字符不是结束符delim,则读取的是n-1个字符;如果第n个
    字符是结束符delim,则读取的是n个字符,且读取结束符后会将其抛弃,这同前面将的get()和getline()函数是一样的
   
    int peek():返回输入流的下一个字符,如果处于文件末尾,则返回EOF,见3_plus_4.cpp
    注:该函数只是查看输入流中的数据,并不会真正的提取数据并写在标准输出设备上
   
    istream& putback(char c):将一个字符从输入流中丢弃,并用字符ch代替插入到输入流中,见3_plus_5.cpp    

    假如我们指向读取文件指定位置之后数据,那么fstream类的seekg()成员函数可以为我们达到目的。
    seekg()函数原型如下:
    istream& seekg( streampos pos );
    istream& seekg( streamoff off, ios::seek_dir dir );
    该函数从istream类继承而来,它被重载了两次,第1个原型将指针定位到离文件开头pos个字节处;第2个原型则将指针定位到距第2个参数
指定的位置off个字节处。

    假如我们想要在文件指定位置处输出数据,那么fstream类的seekp()成员函数可以为我们达到目的。
    seekp()函数原型如下:
    ostream& seekp( streampos pos );
    ostream& seekp( streamoff off, ios::seek_dir dir );
    一般来说,第2个参数有下列几种可能的值:
    ios::beg     //相对于文件开头的偏移量
    ios::cur     //相对于当前位置的偏移量
    ios::end     //相对于文件结尾的偏移量
   
    streampos tellg():返回输入流中当前指针的位置
    streampos tellp():返回输出流中当前指针的位置
   
    文件状态位
    goodbit        无错误
    eofbit        已到达文件末尾
    failbit        非致命的I/O错误
    badbit        致命的I/O错误
    ios::rdstate()        获取文件状态位信息
   
     注:
    1.对于fstream对象来说,seekp()/seekg()等价,因为读写指针是同一个指针,而且tellg()/tellp()也等价,因为读写指针在同一个位置。
而对于ifstream/ofstream就需要使用特定函数。

文件操作的一些函数

原文:http://www.cnblogs.com/kevinq/p/4492977.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!