iostream 的意思是输入输出流。直接点说就是in、out、 stream(流),从字面就可以理解这个函数库所要操作的无非是从流中获取输入,向终端流中输出。
iostream库 的基础是两种命名为 istream 和 ostream 的类型,分别表示输入流和输出流。流是指要从某种 IO 设备上读出或写入的字符序列。术语“流”试图说明字符是随着时间顺序生成或消耗的。
需要注意的是命名空间,当使用 iostream 的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。C++标准程序库中的所有标识符都被定义于一个名为std的namespace命名空间中。
使用该头文件,无非是想对终端获取输入和输出到终端的功能。标准形式:
#include<iostream> //注意头文件没有.h,那个传统C表示方式
using namespace std; //命名空间是std标准库
(datatype) variable;
cin>>variable;
cout<<variable<<endl; //endl是换行的意思
流输入输出接收几乎所有类型,datatype 可以为如字符类型、字符数组、string类、整型、浮点类型、bool类型(输出为0或1,而不是英文中false或者true)。
另外,注意流输入输出符号”>>”和”<<“的区别,教个好记忆的方式,流中数据传向哪里,符号箭头指向哪里。cin是从终端读取数据存向变量,即指向变量,所以为 cin>>variable。而cout是将变量中数据提取出来写入终端,所以是从变量中流出到输出缓存区中,即cout<<variable。
正常获取输入输出,cin/cout就能完成大部分工作。下面介绍一些也可能会在编程中遇到的冷门功能。
1 读取/写入字符,包括空白字符:
char ch;
cin.get(ch); //功能类似stdio.h中getchar()
cout.put(ch); //功能类似stdio.h中putchar()
2 十六进制输出
int nVal=32;
cout<<hex<<nVal; //输出对应的十六进制数20
3 bool输出false/true
这里调用boolalpha函数,功能是把布尔类型值显示为true或false。
bool bFlag=true;
cout<<boolalpha<<bFlag; //如果正常输出,只会输出为1
4 输入一行字符串
题设经常会让输入一行字符串,而正常cin获取遇到空格就会停止,所以cin正常只会获取一个单词,而并不能保存一句完整的字符串语句。
char nzArr[100];
cin.getline(nzArr,100);//接受空格,第二个参数控制输入字符个数,不够遇'\n'即停止