(学习笔记)c++中cin相关输入

来源:互联网 发布:阿里云免备案域名 编辑:程序博客网 时间:2024/06/06 12:21


=========================================================

一、cin
----------------------------------------------------------------------------------------------------

1)cin读取数据时,遇到不可见字符(enter,space,tab)则结束读入。

2)读入结束后丢弃缓冲区中的结束符(enter,space,tab)。



==========================================================================

二、cin.get()

1.默认enter为结束符,遇到结束符或读取指定数目字符时停止读取

2.保留enter、自定义结束符 在缓冲区内

--------------------------------------------------------------------------------------------------------------------------------------

1.cin.get(char c)——读取单个字符

1)遇enter结束(接受space,tab)。

2)不读取,保留缓冲区内的enter。

#include <iostream>using namespace std;int main(){char a,b;cin.get(a);cin.get(b);cout<<a<<" "<<b<<endl; return 0;} 
case :
输入:4 空格 5 回车

输出:4


2.cin.get(字符数组名,长度)——读取一行字符串

1)遇enter结束(接受space,tab)。

2)不读取,保留缓冲区内的enter。

#include <iostream>using namespace std;int main(){char a[10];cin.get(a,4);cout<<a<<endl; return 0;} 
case :
输入:1 空格 2 3 4

输出:1 空格 2


3.cin.get(字符数组名,长度,自定义结束符)——读取一行字符串,遇自定义结束符结束

1)遇到自定义结束符之前接受enter,遇到结束符之后输入回车结束。(接受space,tab)

2)不读取,保留缓冲区内的结束符。

#include <iostream>using namespace std;int main(){char a[10];cin.get(a,7,'0');cout<<a<<endl; return 0;} 

case :

输入:1 空格 2

           3 0 回车

输出:1 空格 2

           3


#include <iostream>using namespace std;int main(){char a[10];char b[10]; cin.get(a,4,'0');cin.get(b,3);cout<<a<<" "<<b<<endl; return 0;} 

case 1:

输入:1 2 0 1

输出:1 2 空格 0 1

【a读取到0之前结束,0留在缓冲区内,被b读取】


case 2:

输入:1 2

           3 0 1 回车

输出:1 2

           空格 3 0

【a输入超长,3 0 1 enter 保留在缓冲区内,b读取前两个元素即3 0】



4.cin.get()——读取下一个字符(包括enter)

1.遇到enter结束,接受space,tab;与cin.get(char c)相似。

2.保留enter在缓冲区内。

#include <iostream>using namespace std;int main(){char a[10],b[10]; cin.get(a,5);cin.get();cin.get(b,5);cout<<a<<" "<<b<<endl; return 0;} 
case:

输入:1 2 3

            4 5 6

输出:1 2 3 空格 4 5 6

【↑用法示例】【调用cin.get()处理换行符】



=============================================================================

三、cin.getline()

------------------------------------------------------------------------------------------------------------------------------------------

cin.getline(字符数组名,长度,(自定义结束符-可省))——读取一行字符

与cin.get()用法相似,区别为:1.cin.getline()丢弃结束符,而cin.get()保留了结束符。

                                            2.输入超长时,后续操作时,cin.get()直接从缓冲区读取数据,即继续执行后续操作;而cin.getline()输入超长时,将引起错

                                              误,后续操作不能继续进行。





0 0
原创粉丝点击