cin、cout定义
cin是用istream类的一个对象,主要负责从标准输入读入数据。标准输入,指的是终端键盘。
cout是流的对象,即为ostream类的一个对象。
cerr是标准错误输出流的对象,也是ostream类的一个对象。标准输出指的是终端终端键盘,标准错误输出指的是终端的屏幕。
标准缓冲区 :当我们从键盘输入字符串以后,这些字符串便被写入标准缓冲区。例如键盘输入123456,最后回车(\r),这是写入缓冲区的应该是123456\r。
cin读取数据是从标准缓冲区来读取数据,缓冲区为空时,cin的成员函数会阻塞等待数据写入。若有数据写入标准缓冲区,则出发cin成员函数去读取数据。
cin的方法主要有:
1、cin>>用法
cin>>等价cin.operator()。
cin>>; 输入字符串若有空格、tab、或者换行时,输出会自动忽略,继续读取下一个字符。若缓冲区为空,则继续等待。但是如果读取成功,字符后面的分隔符是残留在缓冲区的,cin>>不做处理。
2、cin.get用法
nt cin.get(); //无参
istream& cin.get(char& var);//一个参数
istream& get ( char* s, streamsize n ); //两个参数
istream& get ( char* s, streamsize n, char delim )。//三个参数,其中第三个参数为指定结束符
读取一个字符时,使用cin.get(var)
读取一行字符时,使用istream& get ( char* s, streamsize n )或者istream& get ( char* s, size_t n, streamsize delim )
使用cin.get()读取一行时,遇到换行符时结束读取,但是不对换行符进行处理,换行符仍然残留在输入缓冲区。
cin.getline读取一行字符时,默认遇到’\n’时终止,并且将’\n’直接从输入缓冲区中删除掉,不会影响下面的输入处理。
3、cin.getline()用法
istream& getline(char* s, streamsize count); //默认以换行符结束
istream& getline(char* s, streamsize count, char delim);
上面加粗已说明cin.getline()与cin.get()区别