C++基础6:C++中的IO控制

               这一节主要掌握C++中的标准IO控制库,在C++中,IO控制主要分为三类,对标准输入输出设备的读写、对文件的读写、C字符串的对谢赫对string字符串的读写。

               1.STL中关于IO控制的头文件和类

                 a. IO有关头文件

                     iostream、istream、ostream、fstream、sstream、strstream

                 b. IO控制类

                     cin, cout, cerr, clog, wcin, wcout, wcerr, wclog类,对标准输出设备刘德操作,属于iostream头文件。

                     fstream, ifstream, ofstream类,对文件流的操作,属于fstream头文件。

                    stringstream, istringstream, ostringstream类,对string流的操作,属于sstream头文件

                    ostream, wostream类,输出流,属于ostream头文件。

                    istream, wistream, iostream wiostream类,属于istream头文件。

                    这些类的继承关系:

                    iostream是istream, ostream的派生类;ifstream, istringstream, istrstream是istream的派生类;ofstream,ostringstream, ostrstream是ostream的派生类,

              fstream, stringstream, strstream是iostream类的派生类。

                    ostream类,istream类是最上层的基类。

                  c.所有IO控制流泪不能复制和赋值。

             2. IO标准库的条件状态

                    a.条件状态

                      strm:: iostate, strm::badbit, strm::eofbit, strm::failbit

                    b. 条件函数

                       s.bad() 如果设置了流s的badbit值,则返回true.

                       s.eof() 如果设置了流s的eofbit值,则返回true.

                       s.fial() 如果设置了流s的failbit值,则返回true.

                       s.goog() 如果流s处于有效状态,则返回true.

                       s.clear() 将流s的所有状态都设成有效值

                       s.clear(flag) 将流s的某个状态设成有效值

                       s.setstate(flag) 设定流s的某个状态值

                       s.rdstate() 返回流s的当前状态

               3. 刷新流的缓冲区符号

                        endl,  刷新缓冲区并换行 

                        ends, 以NULL填充传冲区,并刷新缓冲区

                        flush, 刷新缓冲区 

                        unibuf,  刷新所有输出,例如cout << unibuf <<"Liu"<<"Li";每个“<<”后,都会刷新缓冲区

                        nounibuf  解除unibuf.

                4. 文件IO流的打开模式

                       例如:fstream(filename, 打开模式)

                      ios_base:: in 以读文件方式打开,只能读取文件中的字符

                      ios_base::out 以写文件方式打开,只能将字符写入文件中

                      ios_base :: app 写文件之前找到文件末尾

                      ios_base ::ate 找到文件末尾

                      ios_base :: trunc 在写文件之前先清空文件

                     有效的组合方式:

                     out|trunc, out|app, out|ate, out|in|trunc,

                 5. stringstream的特殊操作

                      string s;

                     stringstream strm(s); 用s初始化一个流strm

                     strm.str(s); 将s读入流strm中

                      strm.str(); 返回流中的string

                  6. stringstream提供转换或格式化

                      例如:

                     int val = 0;

                     stringstream >> "Val value:" >> val;  //val会自动转换成string

                     string s = "125";

                      stringstream(s);

                     stringstream << val;//将"125"自动转换成int, 并且赋值给val。

                      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值