在c++中,时常会搞不清楚cin与cin.get()的区别,那么到底两者之间的区别是什么呢?
首先cin的输入有一个特点,在遇到‘ ’(空格)时,会结束输入,而cin.get()则将‘ ’也作为了一个字符放到输入里。那其次就是cin.get()的用法了。其用法如下:
1.cin.get(字符变量名)可以用来接收字符
char ch;
ch=cin.get(); //或者cin.get(ch);
cout<<ch<<endl;
此时,无论输入多少,在ch中仅保存了一个字符+'\n',此时cin.get()接受到的只有两个字节。
输入:baijljkljkl
输出:b
2.cin.get(字符数组名,接收字符数目)用来接收一行字符串
char a[20];
cin.get(a,20);
cout<<a<<endl;
注意,可以接收空格
输入:jkl jkl jkl
输出:jkl jkl jkl输入:abcdeabcdeabcdeabcdeabcde (输入25个字符)
输出:abcdeabcdeabcdeabcd (接收19个字符+1个'\0')
3.cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足
string a;
cin>>a;
cout<<a<<endl;
cin.get();
cin.get();
//cin.ignore(1024,'\n');
//cin.get();
此时的第一个cin.get()获取的是cin中最后的'\n',第二个的作用在于在程序结束时输入一个字符,让程序停留在运行界面
注意:此时的第一个cin.get()与cin.ignore()的用法相似,均是消除输入流中的'\n'