大家好
欢迎继续学习C++语言程序设计
这一节我给大家介绍
数据的输入与输出
相信大家在前面的例题中
已经都见过我们从键盘输入数据
或者向显示器输出数据了
那么这个在C++中输入输出数据
用的是什么方法呢
用的是输入输出流的操作
在C++中
我们将数据的输入与输出
看作是信息的流动
如果从程序空间之外
将数据读入到程序空间里面来
那么这是一个输入的过程
在程序进行运算以后
将结果送到显示器
或者其他外部设备上去
这个又是一个输出的过程
C++中没有输入输出语句
而输出输出的功能呢
却是预先为我们定义好了
我们才程序中可以直接调用的
这就是输入输出流类里面的
大量有用的
预先定义好的类
那么我们要进行输入输出
操作的时候呢
就要定义输入输出流类的对象
用这个输入输出流类的对象
来进行输入输出的操作
现在我们来看在C++中
数据它的输入输出
在C++中将数据从一个对象
到另一个对象的流动
抽象为流
流在使用之前要被建立
使用之后要被删除
我们前面例题和习题中
遇到的cin cout
它都是预先定义好的输入流对象
输出流对象
也就是说它默认情况下
建立了这个输入流输出流
我们叫标准输入流对象
输出流对象
如果我们需要的
不是标准输入流输出流
而是其他比如说存取文件的
这种输出流输入流的话
我们就要自己来建立
那么如何定义一个流类的对象
并且用这个对象
去操作文件的存取
将在11章给大家介绍
这一章我们会使用
标准输入流输出流就可以了
标准的输出流大多数时候
是指向屏幕的
标准的输入流
大多数时候是指向键盘的
如果你想改变
标准输入设备输出设备
既可以从操作系统这儿去改变
比如用操作系统的命令去改变
也可以通过C++程序
它的相应的函数调用去改变
从C++中去改变
标准输入流输出流对象
所指向的目标
我们将在第11章介绍
当我们使用标准输入流
输出流对象的时候
我们是通过什么方式
来从键盘读取数据
并将数据写到显示器上呢
最常用的方式是用运算符
读取的时候用提取运算符
写的时候用插入运算符
插入运算符是预定义好的
作用在流这个对象cout上
那么就可以实现
将我们指定的内容
给送到标准输出设备
比如
我们在前面很多例题中都看到
是这样来用的
cout然后后面跟有插入运算符
然后并有表达式
我们还可以写这种级联的形式
连续使用插入运算符
后跟表达式
这样就依次把这些表达式
都送到标准输出设备上去了
标准输入呢
就是将提取运算符
这也是一个预定义好的预算符
作用在流类对象cin上面
cin之后跟提取运算符和表达式
就能够将键盘里面的数据
提取出来存放到这个表达式
所指定的空间中去
它也可以用级联的方式
有连续的提取运算符
每一个提取运算符
后跟一个表达式
比如说我们在这个例子里面看到
定义两个变量a和b
然后用cin呢
依次从键盘提取数据
把它存放到a里面
然后再提取一个数据
存放到b里面
在进行这种提取和插入的时候
我们还可以控制它的格式
我们来看
这个表里面列出了常用的
I/0流类库的操纵符
这个操纵符
它的英文名称是Manipulator
所以我们不叫它操作符
操作符对应的是operator
加减乘除这些
那我们来看这个操纵符的名字
就是manipulator的名字
很像函数名或者是变量名一样
但是不是
它是操纵符的名字
有些资料上也叫操纵算子
用它们就可以来控制
输出输入的格式
比如我们看这个例子里面
用这个setw
就设置了紧接着它之后的
那一项内容
它的宽度
也就是说
它占几个字符的位置来输出
这个setprecision
是用来设置精度的
可以用来设置精度的
设置宽度 精度
还有几进制这些
都是可以很简单的
在这个输出流中表示出来的
在输入流中呢
我们很少用格式控制
一般只会控制你按照八进制
十六进制还是十进制输入
而其他的格式控制呢
用的比较少
因为如果你给用户规定了
很严格的输入格式的话
用户使用起来
反而会觉得不够方便