zoukankan      html  css  js  c++  java
  • std::fstream

    ifstream


    std::ifstream::end

    位于最后一个字符的下一个位置


    ifstream()

    函数原型:ifstream(const char *filename, std::ifstream::openmode mode);

    说明:与open()相同,参考open()


    open()

    函数原型:void open(const char *filename, std::ifstream::openmode mode);

    功能:打开文件

    参数:mode可选值如下

    std::ifstream::in            读方式打开

    std::ifstream::binary     以二进制而非文本格式进行操作

    说明:

    ①检查open操作是否成功:if(fin), if(fin.good());检查是否失败:if(!fin), if(!fin.good())

    ②读写非文本文件,必须加std::ifstream::binary


    tellg()

    函数原型:int tellg();

    功能:返回输入流中的当前字符位置

    说明:

    ①返回值为当前字符索引,起始索引为0

    ②返回值的意义:已读字符个数

    ③读操作,从当前位置的字符开始读取

    ④C++98和0x,若failbit, badbit任何一个被置位,则该函数返回-1

    ⑤C++11,若eofbit, failbit, badbit任何一个被置位,则该函数返回-1

    示例:


    若当前字符位置指向方块,则tellg()值为4,因为方块的索引号为4,表示已读字符数为4(方块之前的四个),read()操作的第一个字符为方块


    seekg()

    函数原型:

    std::istream& seekg(int pos);

    std::istream& seekg(int off, ❀ way);

    功能:设置当前位置

    参数:pos表示绝对位置,即字符索引;off表示相对way的字节偏移,正为前,负为后;

    way涵义如下

    std::ifstream::beg   起始位置,位于第一个字符,即索引0处

    std::ifstream::end   结束位置,位于最后一个字符的下一个位置

    std::ifstream::cur    当前位置

    当way=std::ifstream::beg,off即字符索引,此时seekg(off, std::ifstream::beg)等价于seekg(off),意为将当前位置设置为索引为offset的字符

    说明:

    ①若failbit, badbit任何一个被置位,则seekg失效,不起任何作用

    ②eofbit对seekg无影响,即使被置位,seekg也能调用成功,当前位置改变

    ③C++98和0x,seekg不改变eofbit

    ④C++11,无论把当前位置设置成何处,只要调用seekg,eofbit即被清零


    read()

    函数原型:std::istream& read(char *s, int n);

    功能:从输入流读取n个字符到s

    说明:

    ①如果输入流中的字符数小于n,则全部读取,存入s,同时置eofbit和failbit

    ②字符数恰好等于n的情况下,全部读取,存入s,无任何bit被置位

    只要fin.good()不为true,即eofbit, failbit, badbit任何一个被置位,则读操作必失败


    operator>>()

    函数原型:

    template <typename T> 

    std::istream& operator>>(T &t);

    功能:按格式读取数据

    说明:只要fin.good()不为true,即eofbit, failbit, badbit任何一个被置位,则读操作必失败


    clear()

    函数原型:void clear(std::ifstream::iostate state = goodbit);

    功能:设置流的错误状态标志

    示例:设置流的eofbit和failbit位,过程如下:

    fin.clear(std::ifstream::eofbit | std::ifstream::failbit);


    rdstate()

    函数原型:std::ifstream::iostate rdstate() const

    功能:返回流的内部错误状态标志

    示例:清除流的failbit位,过程如下:

    fin.clear(fin.rdstate() & ~std::ifstream::failbit);


    good()

    函数原型:bool good() const;

    功能:判断eofbit, failbit, badbit均没有置位


    eof()

    函数原型:bool eof() const;

    功能:判断eofbit已置位


    fail()

    函数原型:bool fail() const;

    功能:判断failbit或badbit已置位


    operator bool()

    函数原型:operator bool() const;

    本质:类型转换运算符

    功能:判断failbit和badbit均没有置位


    operator!()

    函数原型:bool operator!() const;

    本质:重载运算符函数

    功能:判断failbit或badbit已置位



  • 相关阅读:
    Java学习之集合
    No module named 'requests'---问题解决记录
    jmeter中设置线程数与设置集合点的区别
    【转载】jmeter将上一个接口返回值作为下一个接口的请求参数
    TortoiseSVN 使用教程
    Xenu Link Sleuth 简单好用的链接测试工具
    Nginx的启动、停止与重启---linux
    深入理解HTTP协议、HTTP协议原理分析
    正则表达式
    Python基础教程(022)--Pycharm快速体验
  • 原文地址:https://www.cnblogs.com/chaikefusibushiji/p/7475575.html
Copyright © 2011-2022 走看看