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添加字符。

  • 相关阅读:
    Sample XPS Documents Download
    触发器中的inserted表和deleted表
    Using freewheel.labs.autodesk.com to auto generate preview images of DWF files on your web site
    解除SQL对组件"Ad Hoc Distributed Queries"的"STATEMENT'OpenRowset OpenDatasource"的访问
    读写xps
    XPS文件,在Windows XP下的打开查看阅读和打印方法。
    Learning to Reference Inserted and Deleted Tables
    Get value from updated, inserted and deleted
    Reinstall Microsoft Helper Viewer
    如何查找文件的IFilter
  • 原文地址:https://www.cnblogs.com/qiusuo/p/4498752.html
Copyright © 2011-2022 走看看