• C++ Primer Plus 文章17章 进,输出和文件


    文章17章 进、输出和文件

    1.当到达输入句子。他将刷新输出缓冲区满输出电流

    2.streambuf分类 它提供了用于各种操作的一个缓冲
    ios_base类表示流的一般特征
    ios基础的类ios_base。它包括一个点streambuf对象的指针
    ostream类从ios派生。提供可输出方法
    istream类从ios派生,提供可输入方法
    iostream类基于ostream和istream,继承了输入和输出方法

    3.包括iostream则自己主动创建了8个流对象
    cin 标准输入 wcin 宽字符流
    cout 标准输出 wcout 宽字符流
    cerr 标准错误流。没有被缓冲。直接发送给屏幕 wcerr 宽字符流
    clog 标准错误流。被缓冲 wclog处理wchar_t宽字符流

    4.C++的全部基本类型P737

    5.ostream
    put(),显示字符
    write(),显示字符串  不会遇到空字符时自行停止,会依据參数的长度。显示该长度的字符

    刷新缓冲区:当遇到换行符;当输入将要发生时
    强制刷新缓冲区cout<<flush;或flush(cout)

    6.cout格式化输入
    对浮点数有新变化
    新式:浮点类型被显示为6位。末尾的0不显示。数字以定点表示法显示或科学计数法表示。当指数大于等于6或小于等于-5时,科学计数法表示
    旧式:浮点类型被显示为带6位小数,末尾的0不显示。数字以定点表示法显示或科学计数法表示。当指数大于等于6或小于等于-5时,科学计数法表示

    7.ios_base类存储了描写叙述格式状态的信息
    dex hex oct控制符。实际上是函数 如hex(cout)以16进制打印
    通常是cout<<hex 会相当于hex(cout)

    int width() 返回当前设置
    int width(int i) 宽度设置为i。并返回曾经的值
    width()方法仅仅影响显示的下一个项目,然后恢复默认值

    cout.fill(char) 输出长度不满足设定长度。多余的就会使用char填充

    设置精度:cout.precision(int)

    8.ios_base类提供了setf()函数可以控制多种格式化特性P747-P751

    9.一些标准控制符 P751 实际上是函数

    10.头文件iomanip
    可提供经常使用控制符,如
    setprecision(int)设置精度
    setfill(char)设置填充字符
    setw(int)设置字段宽度

    使用方法:如cout<<setw(4);

    11.使用cin进行输入
    cin>>staff_size
    cin的參数和返回值都是使用引用。这表明能改动变量

    cin和cout对象包括一个描写叙述流状态的数据成员,从ios_base继承。
    流状态由3个ios_base元素组成 :eofbit。badbit,failbad
    eofbit:当cin操作到文件尾时
    failbit:未能读取到预期的字符时
    badbit:在一些无法诊断的失败破坏流时

    流状态的一些元素和函数P756

    12.使用cin>>,cin.get(ch) 和cin.get()P761
    使用原则:
    假设跳过空白字符,使用cin>>更方便
    希望检查每个字符,使用cin.get(ch) 和cin.get()都能够 仅仅是要处理换行符

    13.字符串输入 getline(),get(),ignore()P762
    istream & get(char*,int,char)
    istream & get(char*,int)
    istream & getline(char*,int,char)
    istream & getline(char*,int)

    istream & cin.ignore(int = 1,int = EOF)
    如cin.ignore(255,' ');
    函数调用读取并丢弃接下来的255个字符或直接到达第一个换行符

    getline 假设没有抽取到不论什么字符,则设置failbit;若抽取到了行指定字符。但行里还有其它字符,则设为failbit
    get 假设没有抽取到不论什么字符,则设置failbit

    14.其它istream方法P764-P765
    read() 如cin.read(gross,144) 与get相似,仅仅是不回在输入后加入空字符,不能成为字符串
    peek() cin.peek() 返回输入流的下一个字符,可是不抽取流中的字符
    gcount()
    putback() 将一个字符插入到输入流的開始,读取是为开头字符

    15.文件输入和输出
    要加入头文件fstream

    要写入文件
    1.创建一个ofstream对象
    2.将该对象与特定的文件关联起来
    3.以使用cout的方式使用fout

    ofstream fout;fout.open("hjq.txt");

    读取文件
    1.创建一个ifstream对象
    2.将该对象与特定的文件关联起来
    3.以使用cin的方式使用fcin

    最后关闭fout.close()

    16.创建多个流对象,则会创建多个缓冲区,互相独立
    打开多个文件,就须要创建多个流对象,

    17.文件模式
    描写叙述文件将被怎样使用:读,写,追加等
    P773-P781

    18.随机存取P783-P788

    19.内核格式化P788-P790
    sstream
    读取string对象中的格式化信息或将格式化信息写入string对象中被称为内核格式化
    ostringstream outstr
    istringstream instr(facts) facts是一个strig对象

    最后3个内容过于少用。应用时再查看

    17.8编程练习 有时间再做
    预计没时间


     

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    最小生成树算法
    并查集
    背包问题
    木桶排序
    STL之vector
    STL中的queue用法与stack用法对比
    快速幂求模
    归并排序+典型例题(逆序对)
    负进制转换
    冒泡排序
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4832847.html
Copyright © 2020-2023  润新知