C++笔记------流类库和文件的输入输出

流类库和输入输出
  流是一种抽象的概念,负责在数据的产生着和数据的使用者之间建立联系,并管理数据的流动。
  整个流类体系是一个派生类体系,ios是抽象类,作为所有基本流类的基类。
  cout 继承 ostream ,ostream继承ios;
  cin 继承 istream ,istream继承ios;
  iostream 继承 ostream和istream;
  os类包含了一个缓冲区指针streambuf(是一个独立的类,作用是管理一个流的缓冲区)。
  C++流类库定义4个全局流对象:cin,cout,cerr和clog。
  cin是标准输入流对象,cout是标准输出流对象,cerr和clog是标准错误输出流,其中cin,cout和clog是带缓冲区,有streambuf类对象管理,cerr不带缓冲区,发生错误立即显示。

  缓冲区三种情况:
  1.遇到endl,会将缓冲区中的内容输出到屏幕
  2.清空缓冲区时,会将缓冲区中的内容输出到屏幕
  3.缓冲区满时,会将缓冲区中的内容输出到屏幕

文件的输入输出
  文件输出过程:
  1.创建文件输出流对象
  2.打开文件
  3.用输出重定向进行文件写入
  4.关闭文件输出流对象
文件随机访问:
  ifile.seeking(pos,ios::beg)//想对位置,字节访问
文件与对象:
  文件应该在构造函数中打开,并创建对象;
  在析构函数中保存和关闭文件,并撤销对象

输出格式:
* - boolalpha
* - dec
* - fixed
* - hex       //以16进制输出
* - internal
* - left        //左对齐
* - oct        //居中
* - right     //右对齐
* - scientific
* - showbase
* - showpoint
* - showpos
* - skipws
* - unitbuf
* - uppercase
* - adjustfield
* - basefield
* - floatfield
文件打开格式:
* - app
* - ate
* - binary
* - in      //输入
* - out    //输出
* - trunc

int main()
{
    int a[]={15,23,36,45,59,67,78,82,91,100};
    ofstream file("test",ios::out);
    for(int i=0;i<10;i++)
    {
        file<<a[i];
    }
    file<<endl;
    file.close();
    cout.width(10);
    cout.flags(ios::hex | ios::oct);
    cout << a[1];
    return 0;
}
原文地址:https://www.cnblogs.com/zhangzeze/p/8734104.html