第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),则不需要加入这一行。
快速参考