第3章 键盘输入和屏幕输出

3.1简单的键盘输入

Data Stream(数据流):数据流对象用于在各种不同的设备(如键盘和屏幕)上执行基本的数据输入和输出操作。

所谓流,就是与输入输出设备相关联的数据通信对象。

输入:cin>> ;        输出:cout <<“ ”;

3.2流操纵符

流操纵符(setw, setfill, fixed,setprecision)用于对输入和输出数据流进行修改。

当程序中出现,在圆括号中有一个参数的流操纵符时,头文件要加#include <iomanip>

setw :设置数据域的宽度(数据项在屏幕上所占的列数)

setw 对输出流中的下一个数据项起作用;

如果域宽设置得太小不足以显示一个数值,

那么系统会自动调整域宽,使其能够显示数据的所有位的数字;

setfill :把占位符从空格改变为其他字符

setfill 把占位符从空格改变为其他字符 ;

setfill 对送入输出流中的所有后继数据项都起作用;

setprecision: 用于指定要显示的数据的位数

流操纵符fixed 和setprecision 将 一直对输出流中的后继数据项起 作用。

*endl:将光标移动到一个新行的起始位置,也属于流操纵符,第2章已提到过,不再赘述

3.3 单个字符的输入和输出

Whitespace Characters(空白字符):

在屏幕上产生的显示结果是不可见的空白或空格, 如Tab、Enter和空格键。

输入方法:

一是用noskipws:不管从键盘读入什么

二是将函数get( )与输入流对象 cin 联合使用

输出方法:

cout and its<<;

利用输出流对象 cout 的成员函数put( )来显示一个字符。

从键盘读取单个字符(包括空格)

char ch; cin>>ch; cin>>noskipws>>ch;//从键盘读取单个字符(包括空格) cin.get(ch); cout.put.(ch)

Programming pitfalls

1. 不要混淆流插入运算符(<<输出)和流提取运算符(>>输入)。

2. 某些流操纵符只作用于下一个数据域(例如setw);

而另外一些流操纵符(例如 setprecision)对所有的后继数据域都起用。

3. 在使用圆括号中有一个参数的流操纵符时,例如setw( 4 ),头文件#include<iomanip>是必需的。

对于其他流操纵符(例如endl),则不需要加入这一行。


 

        快速参考