zoukankan      html  css  js  c++  java
  • 第8章 IO类

    8.1 IO类

    iostream                    istream, wistream从流中读取数据

                                         ostream, wostream

                                          iostream, wiostream读写流

    fstream                      ifstream, wifstream从文件中读取数据

                                         ofstream, wofstream

                                         fstream, wfstream读写文件

    sstream                      istringstream, wistringstream从string中读取数据

                                         ostringstream, wostringstream

                                         stringstream, wstringstream读写string

    为了支持宽字符wchar_t,所有的类型和函数只要以w开始就行。例如:wcin、wcout、wifstream。

    8.1.1 IO对象无拷贝或赋值

    ofstream out1, out2;

    out1=out2;//错误,不能赋值和拷贝

    由于不能赋值拷贝,所以不能将形参和返回值设置为流类型,通常必须使用引用方式传递和返回流。而且读写IO对象会改变对象状态,所以不能是const。

    8.1.2 流的状态

    可以通过流对象的rdstate成员函数返回一个iostate类型的值,表征流的当前状态。

      1. badbit,流崩溃
      2. failbit,IO操作失败
      3. eofbit,文件尾
      4. goodbit,没有错误

    使用setstate函数可以将一个iostate的状态值设置为流的状态,对于已经有错误的流,使用good函数仍返回false。

    使用无参的clear函数复位所有错误标识,执行clear()后,调用good返回true.

    可能用到的函数:eof、fail、bad、good

    8.1.3 管理输出缓冲

    Endl可以完成换行,并刷新缓冲区。

    cout << unitbuf;        //所有输出操作都会立即刷新缓冲区

    cout << nounitbuf;   //将缓冲区刷新任务交给系统

     

    将输入流关联到输出流

    使用tie函数可以讲一个输出流,关联到输入流,并返回原来关联的输出流。

    cin.tie(&cout);

    不带参数的tie函数返回输入流关联的输出流。

    8.2 文件输入输出

    fstream

    fstream fstrm(filePath);

    fstream fstrm;

    fstrm.open(filePath, mode);

    fstrm.is_open();//检验是否成功打开是个好习惯

    fstrm.close();

    当一个fstream对象离开作用域时,与之关联的文件自动关闭。

    Mode

    只读:in

    只写:out

    每次写操作前定位到文件尾部:app

    打开文件后定位到文件尾部:ate

    截断文件:trunc

    二进制方式进行IO:binary

    注意:

      1. 每次调用open,都需要重新制定文件模式,否则为默认默认。
      2. out打开文件,文件从开头截断,为保留文件中的内容,应该同时指定为app
      3. 设定trunc,必须设定out:ofstream::out | ofstream::trunc
      4. 设定app,不能有trunc

    8.3 string流

    <sstream>头文件中

    sstream strm;//未绑定的stringstream对象

    sstream strm(s);//保存string s的一个拷贝

    strm.str();//返回strm保存的string拷贝

    strm.str(s);//将s拷贝到strm中,返回void

    istringstream

    将string类型通过istringstream当做流进行处理。

    ostringstream

    将其他流写入到ostringstream流中,可以相当于向string添加字符。

  • 相关阅读:
    数据的增、删、改(jQuery.Ajax)
    tomcat内置jdk(tomcat集成jdk)(windows环境)
    进行数据库进程的杀死
    矩阵与自然基向量
    实对称矩阵
    坐标变换
    设置PySpark的Python版本
    CentOS7中安装Python3.6
    一个矩阵有几个实特征向量
    centos7系统设置固定IP
  • 原文地址:https://www.cnblogs.com/qiusuo/p/4498752.html
Copyright © 2011-2022 走看看