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已置位



posted on 2017-02-21 13:54  柴科夫斯不是基  阅读(327)  评论(0编辑  收藏  举报

导航