《C++ Primer Plus(第六版)》(39)(第十七章 输入、输出和文件 笔记2)
2017-01-04 11:31
585 查看
要点:输入流
1.流状态
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
成员 | 描述
enfbit | 如果到文件尾,设置为1
badbit | 如果流被破坏,则设置为1;例如,文件读取错误
failbit | 如果输入操作未能读取预期的字符或输出操作没有写入预期的字符,则设置为1
goodbit | 另一种表示0的方法
good() | 如果流可以使用(所有的位都被清除),则返回true
eof() | 如果eofbit被设置,则返回true
bad() | 如果badbit被设置,则返回true
fail() | 如果badbit或failbit被设置,则返回true
rdstate() | 返回流状态
exceptions() | 返回一个位掩码,支出哪些标记导致异常被引发
exceptions(isostate ex) | 设置哪些状态将导致clear()引发异常,例如,如果ex是eofbit,则如果eofbit被设置,clear()将引发异常
clear(iostate s) | 将流状态设置为s,s的默认值为0(goodbit);如果(restate()& exceptions())!= 0,则引发异常basic_ios::failure
setstate(iostate s) | 调用clear(rdstate() | s)。这将设置与s中设置的位对应的流状态位,其他流状态为保持不变。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.成员函数get(char&)
只要有有效的输入,都会返回cin,除非到达文件尾。可以拼接
3.成员函数get(void),返回整形。不能拼接。
如果到了文件尾,返回一个iostream文件定义的常量EOF
4.
getline()将换行符读出来,如果读了最大的字符数,下一个还不是换行符,会设置failbit
get()会把换行符留在输入流中。遇到空行的话,是设置failbit
istream& ignore(int = 1, int = EOF);读取指定数目的字符或者到达分隔符,将这些字符丢弃
5.
read()读取指定数目的字节,并存储在指定的位置中。用来和wirite结合的,主要用于文件输入输出。
read()不会在输入后加上空值字符。
6.peek()返回输入流中的下一个字符,但是不会抽取出来。
7.gcount()返回最后一个非格式化抽取方法读取的字符数。
8.putback()将一个字符放到输入流中,下一个读取的第一个字符的位置。
9.关闭文件链接并不会删除流,而只是断开了流到文件的链接。缓冲区任然存在。
10.is_open()检测文件是否打开状态。这是C++11新增的,能够检测出试图以不合适的文件模式打开文件时失败。
旧的方式不能检测出来。
if(fin.fail());
if(!fin.good());
if(!fin);
这几个都是旧的方式。
11.main函数
int main(int argc, char* argv[])
argc为命令行中的参数个数,其中包括命令名本身。
argv变量为一个指针,它指向一个指向char的指针。可以看做一个指针数组。
argv[0]是命令,如果是通过vs运行,则是程序exe的绝对路径了。arge[1]之后就是参数了。
12.ios_base类定义了一个openmode类型,用于表示模式。
------------------------------------------------------
常量 | 含义
ios_base::in | 打开文件,以便读取
ios_base::out | 打开文件,以便写入
ios_base::ate | 打开文件,并将指针移到文件尾
ios_base::app | 追加到文件尾
ios_base::trunc | 如果文件存在,则截短文件
ios_base::binary | 二进制文件
------------------------------------------------------
13.bitmask就是位掩码,具体实现,可能跟编译器有关,一般是int。其实就是用二进制的方式来看待每一位,每位都是一个独立的标记。
平时用得很多,只是没这个说法而已。
14.seekg()和seekp()函数提供文件的随机存取。
tellg()和hellp()报告当前文件位置。
g是输入流的指针
p是输出流的指针
15.sstream头文件定义了istringstream和ostringstream类,能够使用istream和ostream方法来抽取字符串中的信息,并对要放入字符串中的信息进行格式化。
1.流状态
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
成员 | 描述
enfbit | 如果到文件尾,设置为1
badbit | 如果流被破坏,则设置为1;例如,文件读取错误
failbit | 如果输入操作未能读取预期的字符或输出操作没有写入预期的字符,则设置为1
goodbit | 另一种表示0的方法
good() | 如果流可以使用(所有的位都被清除),则返回true
eof() | 如果eofbit被设置,则返回true
bad() | 如果badbit被设置,则返回true
fail() | 如果badbit或failbit被设置,则返回true
rdstate() | 返回流状态
exceptions() | 返回一个位掩码,支出哪些标记导致异常被引发
exceptions(isostate ex) | 设置哪些状态将导致clear()引发异常,例如,如果ex是eofbit,则如果eofbit被设置,clear()将引发异常
clear(iostate s) | 将流状态设置为s,s的默认值为0(goodbit);如果(restate()& exceptions())!= 0,则引发异常basic_ios::failure
setstate(iostate s) | 调用clear(rdstate() | s)。这将设置与s中设置的位对应的流状态位,其他流状态为保持不变。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.成员函数get(char&)
只要有有效的输入,都会返回cin,除非到达文件尾。可以拼接
3.成员函数get(void),返回整形。不能拼接。
如果到了文件尾,返回一个iostream文件定义的常量EOF
4.
getline()将换行符读出来,如果读了最大的字符数,下一个还不是换行符,会设置failbit
get()会把换行符留在输入流中。遇到空行的话,是设置failbit
istream& ignore(int = 1, int = EOF);读取指定数目的字符或者到达分隔符,将这些字符丢弃
5.
read()读取指定数目的字节,并存储在指定的位置中。用来和wirite结合的,主要用于文件输入输出。
read()不会在输入后加上空值字符。
6.peek()返回输入流中的下一个字符,但是不会抽取出来。
7.gcount()返回最后一个非格式化抽取方法读取的字符数。
8.putback()将一个字符放到输入流中,下一个读取的第一个字符的位置。
9.关闭文件链接并不会删除流,而只是断开了流到文件的链接。缓冲区任然存在。
10.is_open()检测文件是否打开状态。这是C++11新增的,能够检测出试图以不合适的文件模式打开文件时失败。
旧的方式不能检测出来。
if(fin.fail());
if(!fin.good());
if(!fin);
这几个都是旧的方式。
11.main函数
int main(int argc, char* argv[])
argc为命令行中的参数个数,其中包括命令名本身。
argv变量为一个指针,它指向一个指向char的指针。可以看做一个指针数组。
argv[0]是命令,如果是通过vs运行,则是程序exe的绝对路径了。arge[1]之后就是参数了。
12.ios_base类定义了一个openmode类型,用于表示模式。
------------------------------------------------------
常量 | 含义
ios_base::in | 打开文件,以便读取
ios_base::out | 打开文件,以便写入
ios_base::ate | 打开文件,并将指针移到文件尾
ios_base::app | 追加到文件尾
ios_base::trunc | 如果文件存在,则截短文件
ios_base::binary | 二进制文件
------------------------------------------------------
13.bitmask就是位掩码,具体实现,可能跟编译器有关,一般是int。其实就是用二进制的方式来看待每一位,每位都是一个独立的标记。
平时用得很多,只是没这个说法而已。
14.seekg()和seekp()函数提供文件的随机存取。
tellg()和hellp()报告当前文件位置。
g是输入流的指针
p是输出流的指针
15.sstream头文件定义了istringstream和ostringstream类,能够使用istream和ostream方法来抽取字符串中的信息,并对要放入字符串中的信息进行格式化。
相关文章推荐
- 《C++ Primer Plus(第六版)》(38)(第十七章 输入、输出和文件 笔记1)
- 2012/2/11 《C++ Primer Plus》第十七章:输入、输出和文件 学习笔记
- 2012/2/11 《C++ Primer Plus》第十七章:输入、输出和文件 学习笔记
- 《C++ Primer Plus(第六版)》(41)(第十七章 输入、输出和文件 编程练习和答案1)
- 《C++ Primer Plus(第六版)》(40)(第十七章 输入、输出和文件 复习题和答案)
- 《C++ Primer Plus(第六版)》(42)(第十七章 输入、输出和文件 编程练习和答案2)
- c++ primer plus 第十七章 输入 输出 文件 IO iostream fstream
- 《C++ Primer Plus》第17章 输入、输出和文件 学习笔记
- c++primer plus第十七章-cin输入、cout输出和文件I/O
- 【读书笔记:C++ primer plus 第六版 中文版】第17章 输入、输出和文件
- c++primer plus第十七章-文件输入和输出
- C++ Primer Plus 第17章 输入,输出和文件
- C++ Primer Plus(十七)——输入、输出和文件
- C++ Primer Plus 之 输入、输出和文件
- c primer plus 程序笔记 (二) 第13章 文件输入/输出
- c++primer plus第十七章-输入和输出概述
- C++ primer plus(第六版)学习笔记、习题答案(4)
- C Primer Plus (第五版) 第十三章 文件输入/输出 编程练习
- 【c++笔记十三】c++中的输入、输出和文件操作
- C++ Primer Plus第六版 第十七章 编程练习答案(完结篇...木有18章)