cin 是 istream类的对象,用于处理标准输入(即键盘输入),
cout 是 ostream类的对象,用于处理标注输出(即屏幕输出)。
cin 与提取运算符 >> 结合使用 , cout 与插入运算符 << 结合使用,完成C++中的输入输出操作。
cin从标准输入设备(键盘)中获取数据,通过提取运算符“>>”从流中提取数据,然后发送给cin对象,由cin对象将数据发送到指定的地方。cin是带缓冲区的输入流对象,只有在输入完数据并按下回车键后,该行数据才被送入键盘缓冲区,形成输入流,提取运算符“>>”才能从中提取数据。
int a;
cin >> a;
此时若从键盘上输入10,则10只是被存入缓冲区,并不能被“>>”运算符提取,按下回车键后,缓冲区中的内容才被刷新成输入流,被“>>”运算符提取后传递给cin对象,由cin对象发送到变量a 中存储。
当然针对以上代码,输入字符串则会操作失败,此时cin流被置为出错状态,这是C++ I/O安全性的体现。
除了单个变量读取,cin对象也可以一次性读入多个变量的值,因为“>>”运算符返回的是istream的引用,所以可连续提取数据。
int a , b;
cin >> a >> b;
当输入多个数值时,要在数值之间加空格以示区分,cin读到空格时,就能够区分输入的各个数值。除了在输入的数据之间加空格,也可以在每输入一个数据后都按回车键或Tab键,这样也可以正确地读入数据
也可以采用cin对象一次性读入多个不同类型的变量值。
string s;
float f;
cin >> s >> f;
cin会将它们分别存储到对应变量中。
读入字符串,也可以采用字符数组存储字符串。
char str[10];
cin >> str;
如果用一个字符数组存储字符串,则要确保输入的字符串不超出字符数组的大小,否则会发生溢出,破坏内存中的其他数据。
cout是ostream类的对象,对应的标准设备为屏幕,叫作标准输出对象或屏幕输出对象,但也可被重定向输出到磁盘文件。用户可以通过cout对象调用ostream类的插入运算符和成员函数来输出信息。
利用cout对象可以直接输出常量值:
cout << 10 << endl;
cout << 'a' << endl;
cout << "C++" << endl;
利用cout对象输出变量的值。在用cout输出变量值时,不必设置以什么格式输出,“<<”运算符会根据变量的数据类型自动调用相匹配的重载函数来正确输出。
int a = 10;
string s = "C++";
float f = 1.2;
cout << a << endl;
cout << s << endl;
cout << f << endl;
利用cout对象输出指针、引用类型的数据。当输出数据为指针或引用类型时,与printf()函数的用法一致,不带*符号输出的是指针的值,即变量的地址;带*符号输出的是指针指向的变量的值。它比printf()函数简便之处在于不必设置数据的输出格式。
#include
using namespace std;
int main(){
int a = 10;
int *p;
int &b = a; //引用,变量b和a指向同一个空间
p = &a; //指针p存储变量a的地址
string s = "C++";
string *ps = &s;
cout << p << endl;
cout << b << endl;
cout << *p << endl;
cout << ps << endl;
cout << *ps << endl;
return 0;
}
cout对象连续输出数据
int a = 10;
char c = 'a';
cout << a << "," << endl;
#include
using namespace std;
int main(){
const double pi = 3.14159;
double r , c , s;
cout << "输入圆的半径:";
cin >> r;
c = 2.0 * pi * r;
s = pi * r * r;
cout << "圆的周长为:" << c << endl;
cout << "圆的面积为:" << s << endl;
return 0;
}