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,'\n');
函数调用读取并丢弃接下来的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编程练习 有时间再做
预计没时间
版权声明:本文博主原创文章,博客,未经同意不得转载。
C++ Primer Plus 文章17章 进,输出和文件的更多相关文章
- C Primer Plus 第8章 字符输入/输出和验证输入 编程练习
1. #include <stdio.h> int main(){ char ch; int ct = 0; while ((ch=getchar()) != EOF) ct++; pri ...
- C++ Primer 5th 第17章 标准库特殊设施
C++新标准库提供了很多新功能,它们更加强大和易用. tuple类型 tuple是一种类似pair的模板,pair可以用来保存一对逻辑上有关联的元素对.但与pair不同的是,pair只能存储两个成员, ...
- Node.js系列文章:利用console输出日志文件
通常我们在写Node.js程序时,都习惯使用console.log打印日志信息,但这也仅限于控制台输出,有时候我们需要将信息输出到日志文件中,实际上利用console也可以达到这个目的的,今天就来简单 ...
- C++ primer plus读书笔记——第17章 输入、输出和文件
第17章 输入.输出和文件 1. 对键盘进行输入缓冲可以让用户在将输入传输给程序之前返回并更正.C++程序通常在用户按下回车键时刷新输入缓冲区. 2. 一些I/O类 streambuf类为缓冲区提供了 ...
- C Primer Plus_第6章_循环_编程练习
1.题略 #include int main(void) { int i; char ch[26]; for (i = 97; i <= (97+25); i++) { ch[i-97] = i ...
- C Primer Plus_第5章_运算符、表达式和语句_编程练习
Practice 1. 输入分钟输出对应的小时和分钟. #include #define MIN_PER_H 60 int main(void) { int mins, hours, minutes; ...
- C Primer Plus_第四章_字符串和格式化输入输出_编程练习
Practice 1.输入名字和姓氏,以"名字,姓氏"的格式输出打印. #include int main(void) { char name[20]; char family[2 ...
- C++ Primer 5th 第2章 变量和基本类型
*****代码在Debian g++ 5.3.1 / clang++ 3.8(C++11)下编写调试***** 由于部分编译器对标准遵循的不同以及自身额外的扩展,本章书中的少数知识点与实际实现存在偏差 ...
- 第17章 中介者模式(Mediator Pattern)
原文 第17章 中介者模式(Mediator Pattern) 中介者模式 概述: 在软件开发中,我们有时会碰上许多对象互相联系互相交互的情况,对象之间存在复杂的引用关系,当需求更改时,对系统进 ...
随机推荐
- DeviceIoControl 直接从磁盘扇区读文件
好久没写博客了,近期看了下DeviceIoControl 关于磁盘的应用,特记一文,以备久后查阅. 首先介绍下,文件在磁盘的存储结构(详细能够到网上查询NTFS文件系统相关的教程后者数据恢复方面教程 ...
- Cocos2d-x3.0 lua捆绑C++分类
我知道这个纪录Lua结合整个过程. 原文地址:http://blog.csdn.net/qqmcy/article/details/26099859 准备工作: 1.创一个一个Lua的2dxproje ...
- unrecognized selector sent to instance 0x10b34e810
一个错误: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSURLEr ...
- SharePoint 2010 新列表模板列表
SharePoint 2010 新列表模板列表 项目描述叙事 发展环境创造了良好的名单为模板.然后使用列表模板将其复制到生产环境. 脚步 1. 打开"列表设置",找到"将 ...
- Oracle集合操作函数:Union、Union All、Intersect、Minus
Union.对两个结果集进行并集操作.不包含反复行,同一时候进行默认规则的排序: Union All.对两个结果集进行并集操作,包含反复行.不进行排序: Intersect,对两个结果集进行交集操作. ...
- Maven学习笔记(十一年):柔性结构
一个典型的项目将是开发环境.测试环境和生产环境,这些环境的数据库配置是不一样的,并使用正确的配置. Maven为了支持构建的灵活性,内置了三大特性,即属性.Profile和资源过滤.本章将介绍这些特性 ...
- 剑指offer 例题
题目: 实现一个排序算法,排序对象是本公司员工的年龄.要求时间复杂度O(n),空间复杂度不能超过O(n). #include<iostream> using namespace std; ...
- Directx11学习笔记【七】 游戏定时器的实现
无论是在动画还是在一些游戏中,定时器总是必不可少的,游戏的帧数动画的播放等都离不开定时器的控制.这里以dx11龙书中提供的定时器为例,具体看看是怎么实现一个简单但精度高使用方便的定时器的. 这个定时器 ...
- Lua面向对象设计(转)
首先对于Lua语言,它没有打算被用来进行大型的程序设计,相反,Lua目标定于小型到中型的程序设计,通常是作为大型系统的一部分,所以它只提供了一套精简的元素,很多高级语言的概念都没有.这样Lua就成为了 ...
- redis基础的字符串类型
redis —— 第二篇 基础的字符串类型 我们都知道redis是采用C语言开发,那么在C语言中表示string都是采用char[]数组的,然后你可能会想,那还不简单,当我执行如下命令,肯定是直 接塞 ...