1. Ostream类字符显示方法(需用对象调用);put(char)(用于单个字符显示);write(char*,int)(用于显示int指定的多个字符,不检查字符串是否越界),其第一个参数为读取数据的地址,第二个参数为所需读取的字符数(读取多个字符)或者字节数(读取单个字符或数值),若要读取二进制数值,将数值强制转换为char*类型并作为第一个参数,第二个参数则原数值类型所占的字节数(可以用sizeof+类型名),详见编程练习17.7。
  2. 刷新输出缓冲区(用于将不满缓冲区的内容发送到输出):将flush或endl与插入运算符<<连用即可
  3. cout格式化方法:

1)专用方法(需要采用输出对象进行调用):

2)调整字宽width(int),调用时不带参数返回字段宽度的当前设置,带int参数表示将下一个显示项目的字宽设置为参数                值,并返回以前字宽值。

3)浮点数的显示精度precision(int),设置后将一直有效直到重新设置;对于默认模式该精度指显示的总位数,而对于定             点和科学模式则指小数点后的位数。

4)填充字符fill(‘字符’),系统默认用空格填充字段中未被使用的部分,采用该方法可以将未使用的部分填充为自定义的字                  符,该修改将一直有效,直到重新设置。

5)setf()方法:需要输出对象进行调用,可通过格式常量(ios_base类)作为参数控制多种格式化特性,所做出的修改将一              直有效直到被覆盖为止。有两个函数原型, fmflags setf(fmtflags):fmflags setf(fmtflags,fmtflags):fmtflags为bitmask              类型的typedef名,用于存储格式标记,两种函数       原型用于不同的格式控制,但返回值都是以前的设置值,可将其保                存用于恢复设置。具体格式常量定义p747、748.

6)控制符(无参数):无需对象进行调用,直接采用“cout<<控制符”即可做相应的格式控制,例如:计数系统显示修改(dec、hex、oct),左对齐显示(left),一般控制符与格式常量相似。详见p751-752

7)头文件iomanip定义的控制符:该文件定义的控制符一般带一个参数,无需对象调用,使用方法同上3),例如:setprecision(int)、setfill(int)、setw(int)分别用于设置精度、填充字符与字段宽度

8)其他:

a.格式作用范围:除设置字宽的格式(专用方法与控制符均有)只对下一个输出有效之外,其他设置均从设置开始之后所               有均有效,直到重新设置。

b.恢复以前格式设置方法:采用setf()方法时将返回值保存到fmtflags变量,再在需要恢复时用该变量作为setf方法的参                数即可;采用unsetf方法将setf设置为1的为恢复为0;采用标准控制符,如:noboolalpha、noshowbase;

c.启用浮点数的默认模式方法:定点和科学模式可用格式常量fixed、scientific启用,但是没有定义默认模式的格式常量,               可采用两种方法启用:cout.setf(0,ios_base::floatfield),cout.unsetf(ios_based::floatfiled);

d.标准控制符与格式常量使用差别:很多标准控制符与格式常量形式相同,但是标准控制符可以直接与插入运算符<<连用               用于格式控制,而格式常量则是ios_base类声明中定义的作为setf方法的参数使用,且需加作用域解析运算符。

4、get()方法、与抽取运算符>>:

a.单参数get()方法:用于单字符的输入,包含有参数和无参数两个版本,两种版本均不跳过空白(空格制表、换行均可接          受),带参数版本将读取字符传递给参数返回调用对象的引用,无参数版本返回读取字符int类型,即不能将无参数版本用            于拼接输入,到达文件尾时停止赋值,有参数版本将调用setstate(failbit)导致cin测试结果为false,无参数版本将返回                EOF(iostream提供的一个符号常量为int类型)。

b.两参数get()方法,用于整行字符的输入,同样不跳过空白,但不能读取换行符,将换行符视为行尾,即读取到换行            符 为止,并将其留在输入队列中

c.抽取运算符:将跳过空白,不能接受空格、制表、换行符,还可以进行数据转换。

5、字符串输入方法getline(),get()

共同点:a.均返回调用对象,可用于拼接函数

b.get()、getline()方法均有两个版本,可接受两个或三个参数,对于接受两个参数的版本,第一个参数均为接受字符串内存单元的地址,第二个参数为读取的字符数(注意该整型参数必须要比读取的最大字符数大1,最后一个字符用于存储字符串结尾的空字符),第三个参数为可选参数,可用于指定分界符(字符串结束标志)若不指定默认为换行符

c.函数均在读取到指定的最大字符数(第二个参数指定的数字减1)或出现指定的分界符(第三个参数指定的或默认的换行符)时停止

d.均在遇到文件尾时设置eofbit,遇到流被破坏时设置badbit

不同点:a.get()方法将分界符留在输入流中,而getline()方法将读取分界符然后将其丢弃,也就是说对于get()方法若读取其下一个字符将为其分界符,而对于getline()方法将为输入流中分界符后面的字符

b.failbit设置行为不同:getlin方法在没有读取任何字符(换行符视为读取了一个字符),以及读取了最大数目的字符且下一个字符不是分界符(即一行输入超出最大字符限制)两种情况时将设置failbit;而get方法仅在没有读取到任何字符(分界符)时设置failbit

6、其他istream方法

a.ignore()方法

原型:istream&ignore(int i=1,int=EOF);第一个参数为数字指定要读取的最大字符数(等于指定数目),第二个参数为指定的分界符,方法将在到达第一个分界符或读取到最大字符时停止,但该方法将丢弃所读取的字符。

b.read()方法:

与两参数的get、getline方法使用类似,但该方法不会在输入后加上空值字符即不能将输入转换为字符串,一般与write函数结合使用

c.peek()方法:

返回输入流中的下一个字符,但不抽取输入流中的字符,即只能用peek方法查看下一个字符,但并不读取该字符,该字符仍将留在输入流中,若不对其进行抽取,peek读取的将一直是该字符。若用在get()方法后可用于判断一行是否读取完整(若返回分界符则表示一行读取完整)。

例:while ((ch=cin.peek())!='$')

{

count++;

}

该循环将一直持续(若第一个字符不是$),因为ch始终是第一个字符,peek不能抽取字符

while ((ch=cin.peek())!='$')

{

count++;

cin.get(str[i++]);

}

采用get方法抽取字符便可以正常循环,且$字符将被留在输入流中

d.gcount()方法:

返回最后一个非格式化抽取方法,即返回用get、getline、ignore、read方法读取字符,不能用于抽取运算符》该运算符将对输入进行格式化

e.putback()方法

接收一个char参数(要插入的字符),将该字符插入到输入字符串中,该字符将是下一条输入语句读取的第一个字符。

7.文件格式

将数据存储在文件中时,有文本格式各二进制格式两种,文本格式是将所有内容存为文本,每个字符都单独视为一个文本(123.4将被存储为5个字符),而二进制格式则是指数据的计算机内部表示(123.4存储为这个值的64位double表示而不是存储5个字符),而对于字符数据而言,这两种格式表示都是一样的即存储字符的ASCII码的二进制表示。注意:<<插入运算符以及抽取运算符>>则是以文本格式来输出和输入数据,因此对于二进制文件的输入输出不应用这两个运算法,而是采用write和read方法(例见编程练习17.7)。

8.命令行处理文件:注意运行步骤,以及输入的命令格式(详见17.2)

9.Exit函数:在头文件cstdlib中定义,将直接退出程序,可接受int参数,将其作为返回代码输出,可采用符号常量EXIT_FAILURE(返回代码为1),EXIT_SUCCESS(返回代码为0)。

c++ primer plus 第六版第十七章学习笔记相关推荐

  1. C Primer Plus(第六版)第三章 数据和C

    笔记记录 1.float 类型可以储存带小数的数字. 2.printf()中使用%f来处理浮点值.%.2f中的.2用于精确控制输出,指定输出的浮点数只显示小数点后面两位. 3.scanf()函数用于读 ...

  2. C Primer Plus第六版第五章运算符,表达式,语句源码

    源码 //5.1#include<stdio.h> #define ADJUST 7.31 int main(void) {const double SCALE = 0.333;doubl ...

  3. C Primer Plus第六版第七章编程题目与参考答案⭐

    1.编写一个程序读取输入,读到#字符停止,然后报告读取的空格数.换行符数和所有其他字符的数量. #include <stdio.h> #define STOP '#' #define SP ...

  4. C Primer Plus (第六版) 第七章 7.11编程练习 参考答案

    11.ABC 邮购杂货店出售的洋蓟售价为 2.05 美元/磅,甜菜售价为 1.15美元/磅,胡萝卜售价为 1.09美元/磅.在添加运费之前,100美元的订单有5%的打折优惠.少于或等于5磅的订单收取6 ...

  5. c primer plus 第六版 第五章练习

    /* 1.编写一个程序,把用分钟表示的时间转换成用小时和分钟表示的 时间.使用#define或const创建一个表示60的符号常量或const变量.通 过while循环让用户重复输入值,直到用户输入小 ...

  6. c primer plus第六版 第七章

    /*1.编写一个程序读取输入,读到#字符停止,然后报告读取的空格 数.换行符数和所有其他字符的数量.*/ #include<stdio.h> #include<ctype.h> ...

  7. C++primer plus第六版第四章编程题代码

    1. #include "stdafx.h" #include <iostream> #include <string> #include <vect ...

  8. C Primer Plus第六版第四章编程题目与参考答案⭐

    1.编写一个程序,提示用户输入名和姓,然后以"名,姓"的格式打印出来. #include <stdio.h>int main() {char firstname[20] ...

  9. 《Python数据分析》第二版.第三章.[学习笔记][Jupyter notebook]

    第3章 Python的数据结构.函数和文件 1.元组是一个固定长度,不可改变的Python序列对象 tup = 4, 5, 6 nested_tup = (4, 5, 6), (7, 8) #复杂元组 ...

最新文章

  1. 500 行代码写一个俄罗斯方块游戏
  2. Nginx uWsgi Django环境搭建
  3. leetcode 19. Remove Nth Node From End of List | 19. 删除链表的倒数第 N 个结点(Java)
  4. 如何让文字溢出自动变成省略号
  5. 平板android优化网络,Android版Firefox更新 针对平板设备优化
  6. STM32F103:一.(3)IO方向
  7. element ui设置表格表头高度和每一行的高度
  8. softmax分类算法原理(用python实现)
  9. silverlight寻奇
  10. 《编程之美》笔记(一)
  11. vs2013 update5离线升级包下载地址
  12. 对抗样本(五)DeepFool
  13. 计算机局域网的组网,计算机局域网组网方案设计(精选).doc
  14. 怎么查自己电脑ip地址
  15. unicode字符集与编码
  16. kaggle实战——What Causes Heart Disease?
  17. 入坑slam,一位博士小姐姐的科研和成长分享(考研+读研+读博)
  18. 微信公众号开发前端逻辑
  19. 计算机安装xp蓝屏怎么办,谁知道电脑装XP中途蓝屏怎么处理?
  20. 2020年全球光伏逆变器市值将超过71亿美元

热门文章

  1. 程序猿飞机加油绕地球题目
  2. 数据库关联表名命规范
  3. C语言去除字符串首尾空格
  4. 深圳40年城市印记:从小渔村到智慧城市
  5. 安盛信利:数据驱动战略确保长期竞争优势
  6. 伯克利计算机科学研究生,加州大学伯克利分校计算机科学研究生学费费用介绍...
  7. css3彩色方块loading动画js特效
  8. SCI一区顶刊Trans常客-天宇师兄的科研方法及如何更容易被录取经验分享
  9. 设置Android studio 3.0显示 光标返回上一次浏览位置 的箭头图标
  10. 手机连上WiFi后自动弹出页面原理探究及使用8266实现