关于C++中cin()和cin.get()的用法,问题如下
chara[20];intx;cout<<"输入x";cin>>x;cout<<"输入字符数组:"cin.get();gets(a);为什么要加cin.get()????...
char a[20];
int x;
cout<<"输入x";
cin>>x;
cout<<"输入字符数组:"
cin.get();
gets(a);
为什么要加cin.get()???? 展开
int x;
cout<<"输入x";
cin>>x;
cout<<"输入字符数组:"
cin.get();
gets(a);
为什么要加cin.get()???? 展开
4个回答
展开全部
get()是对象cin的一个成员函数, 用于吸收字符, 这里可以吸收掉回车。 否则回车也会被存储到字符数组a里面。 这就相当于C程序中的getchar(), 懂了吗?
这里用一个getchar()和cin.get()效果一样, 不信你可以试一下。。
这里用一个getchar()和cin.get()效果一样, 不信你可以试一下。。
追问
我看到百度上有说cin>>x;的cin函数是丢弃回车的,也就是输入x之后并没有在输入流保存回车,那为什么还要用get()吸收回车?
追答
是的, 但是如果先回车, 想要再输入字符串的话, 程序就终止了对吧。。 你没有理解gets的用法, 如果遇到回车, gets就起不到应有的作用了。。
你可以把a输出, 自己试一下有什么区别。。。 这段代码应该是某本书上的对吧, 作为一段程序,
健壮性是非常重要的。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int get();
istream &get( char &ch );
istream &get( char *buffer, streamsize num );
istream &get( char *buffer, streamsize num, char delim );
istream &get( streambuf &buffer );
istream &get( streambuf &buffer, char delim );
get()函数被用于输入流,和以下这些:
读入一个字符并返回它的值,
读入一个字符并把它存储在ch,
读取字符到buffer直到num - 1个字符被读入, 或者碰到EOF或换行标志,
读取字符到buffer直到已读入num - 1 个字符,或者碰到EOF或delim(delim直到下一次不会被读取),
读取字符到buffer中,直到碰到换行或EOF, 或是读取字符到buffer中,直到碰到换行,EOF或delim。
(相反, delim直到下一个get()不会被读取 ).
你的两个程序,在每个cout<<"what is your first name? \n";前加上cin.get();吃掉之前的回车换行字符即可!
istream &get( char &ch );
istream &get( char *buffer, streamsize num );
istream &get( char *buffer, streamsize num, char delim );
istream &get( streambuf &buffer );
istream &get( streambuf &buffer, char delim );
get()函数被用于输入流,和以下这些:
读入一个字符并返回它的值,
读入一个字符并把它存储在ch,
读取字符到buffer直到num - 1个字符被读入, 或者碰到EOF或换行标志,
读取字符到buffer直到已读入num - 1 个字符,或者碰到EOF或delim(delim直到下一次不会被读取),
读取字符到buffer中,直到碰到换行或EOF, 或是读取字符到buffer中,直到碰到换行,EOF或delim。
(相反, delim直到下一个get()不会被读取 ).
你的两个程序,在每个cout<<"what is your first name? \n";前加上cin.get();吃掉之前的回车换行字符即可!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用这个函数拿掉回车
追问
cin>>x;的cin函数是丢弃回车的,也就是输入x之后并没有在输入流保存回车,那为什么还要拿掉回车?
追答
所谓的丢弃回车就是不将回车 这个字符放到输入流里面,也就是说 回车这个字符就成了等待接受的一个字符,如果你直接gets 也就直接被捕获接收了。
那么cin.get就是来处理掉这个待接收的回车。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询