cin是C++编程语言中的标准输入流对象,即istream类的对象。cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。此外,cout是流的对象,即ostream类的对象,cerr是标准错误输出流的对象,也是ostream 类的对象。这里的标准输出指的是终端键盘,标准错误输出指的是终端的屏幕。
在理解cin功能时,不得不提标准输入缓冲区。当我们从键盘输入字符串的时候需要敲一下回车键才能够将这个字符串送入到缓冲区中,那么敲入的这个回车键(\r)会被转换为一个换行符\n,这个换行符\n也会被存储在cin的缓冲区中并且被当成一个字符来计算!比如我们在键盘上敲下了123456这个字符串,然后敲一下回车键(\r)将这个字符串送入了缓冲区中,那么此时缓冲区中的字节个数是7 ,而不是6。
cin读取数据也是从缓冲区中获取数据,缓冲区为空时,cin的成员函数会阻塞等待数据的到来,一旦缓冲区中有数据,就触发cin的成员函数去读取数据。
注意:
(1)cin>>等价于cin.operator>>(),即调用成员函数operator>>()进行读取数据。
(2)当cin>>从缓冲区中读取数据时,若缓冲区中第一个字符是空格、tab或换行这些分隔符时,cin>>会将其忽略并清除,继续读取下一个字符,若缓冲区为空,则继续等待。但是如果读取成功,字符后面的分隔符是残留在缓冲区的,cin>>不做处理。
(3)不想略过空白字符,那就使用 noskipws 流控制。比如cin>>noskipws>>input;
cin是C++编程语言中的标准输入流对象,即istream类的对象。
cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。cin读取数据是从缓冲区中获取数据,缓冲区为空时,cin的成员函数会阻塞等待数据的到来,一旦缓冲区中有数据,就触发cin的成员函数去读取数据。
cin的常用读取方法
使用cin从标准输入读取数据时,通常用到的方法有cin>>,cin.get,cin.getline。
1、cin>>的用法
cin可以连续从键盘读取想要的数据,以空格、tab或换行作为分隔符。
2、cin.get的用法
该函数有有多种重载形式,分为四种格式:无参,一参数,二参数,三个参数。
(1)cin.get读取一个字符,可以使用cin.get或者cin.get(var)。
(2)读取一行可以使用istream& get ( char* s, streamsize n )或者istream& get ( char* s, size_t n, streamsize delim )。二者的区别是前者默认以换行符结束,后者可指定结束符。n表示目标空间的大小。
3、cin.getline读取一行
函数作用:从标准输入设备键盘读取一串字符串,并以指定的结束符结束。
给你举个例子说明一下:
int a[3] = {0};
for (int i = 0; i < 3; i++)
cin >> a[i];
for (int i = 0; i < 3; i++)
cout << a[i] << endl;
如果输入
1 2 3
输出的结果就是
1
2
3
cin>>a[i]的意思就是输入值放到数组a里面