关于C++的cin.get()的问题

它怎么用呢?特点是什么?和一般的cin>>a,有什么区别吗?我的树上没有仔细写不好意思。也就是说用cin.get(字符型变量),我输入abcd,它只得到了一个a,一个字符... 它怎么用呢?特点是什么?和一般的cin>>a,有什么区别吗?我的树上没有仔细写不好意思。
也就是说用 cin.get(字符型变量),我输入abcd,它只得到了一个a,一个字符而已吗?
展开
 我来答
猪头或火宝宝
2010-08-18 · TA获得超过2758个赞
知道小有建树答主
回答量:1001
采纳率:0%
帮助的人:1530万
展开全部
楼主你好!!!

cin.get()函数本身就是输入一个字符的。比如:

char s[20];
cin.get(s);就会出现编译错误,

改成;char s;
cin.get(s);
就对了
关于cin.get()与cin>>s;的区别就是前者不会忽略空格,回车键,、会把他们当作字符了处理,如:cin.get(s);要是输入:空格 a,那里,字符变量s的值就是一个空格,字符a则会存在缓冲区了。要是用cin>>s,它会忽略空格、、、直到有字符输入为止。如;输入:空格 a,那么字符变量s的值就是‘a’了。

举例:
1、cin>>

用法1:最基本,也是最常用的用法,输入一个数字:

#include <iostream>
using namespace std;
main ()
{
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
}

输入:2[回车]3[回车]
输出:5

用法2:接受一个字符串,遇“空格”、“TAB”、“回车”都结束

#include <iostream>
using namespace std;
main ()
{
char a[20];
cin>>a;
cout<<a<<endl;
}

输入:jkljkljkl
输出:jkljkljkl

输入:jkljkl jkljkl //遇空格结束
输出:jkljkl

2、cin.get()

用法1: cin.get(字符变量名)可以用来接收字符

#include <iostream>
using namespace std;
main ()
{
char ch;
ch=cin.get(); //或者cin.get(ch);
cout<<ch<<endl;
}

输入:jljkljkl
输出:j

用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格

#include <iostream>
using namespace std;
main ()
{
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(字符数组名,接收字符数目)的不足.

这个我还不知道怎么用,知道的前辈请赐教;

3、cin.getline() // 接受一个字符串,可以接收空格并输出

#include <iostream>
using namespace std;
main ()
{
char m[20];
cin.getline(m,5);
cout<<m<<endl;
}

输入:jkljkljkl
输出:jklj

接受5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出;

如果把5改成20:
输入:jkljkljkl
输出:jkljkljkl

输入:jklf fjlsjf fjsdklf
输出:jklf fjlsjf fjsdklf
百度网友4fee1d0
2010-08-18 · TA获得超过340个赞
知道小有建树答主
回答量:411
采纳率:0%
帮助的人:275万
展开全部
不是的,你每用一次就可以从输入流提取一个字符,当然在输入流有效的情况下。也就是说,你可以对abcd进行多次提取,依次提取出字符'a'、'b'、'c'、'd'。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
japto
2010-08-18 · TA获得超过961个赞
知道小有建树答主
回答量:457
采纳率:0%
帮助的人:307万
展开全部
cin.get本身就是读取字符的
要想一次读取,追加参数(字符数)
比如:cin.get(s, 20)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fantacywall
2010-08-18 · TA获得超过333个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:272万
展开全部
一般情况下,cin>>a输入时,会自动跳过输入的空格,如果你要把键盘上输入的每个字符 包括空格和回车键都作为一个输入字符给字符型变量时,必须使用函数cin.get()。
格式为 cin.get(字符型变量)
这意味着该语句一次只能从输入行中提取一个字符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式