下面通过例子为大家介绍C++中get()和getline()的区别。
问题一:
- #include
- #include
- using namespace std;
- void main(void)
- {
- string st ;
- cout<<"Input st:";
- getline(cin,st);
- cout<
- }
上面这段代码,如果输入abc,那么需要按两次回车键才能显示abc(在VC6中),因为getline有三个参数,第三个参数是字符串的结束符,也就是当getline遇到这个结束符时,就不在接受输入了,比如写成 getline(cin,st,'s'); 即使输入的是abcsabc 那么也只会显示 abc ,因此对于上面出现的情况,有人说getline默认情况下以回车('\n')作为结束符,第一次按回车表示字符串结束,第二次按回车才开始输出。也有人说这是VC6的bug,我觉得前一种解释比较合理,因为:
如果你输入abc(回车)abc,那么程序会显示abc,可见回车的确是函数默认的结束符。同理:
- getline(cin,candybar.pinpai);
就是当输入一串字符串后赋值给candybar.pinpai,然后再按二次回车才显示在屏幕上!
问题二:
1.cin.getline是读入一行字符,比如:
- #include
- void main()
- {
- char str[20];
- cout<<"Input :";
- cin.getline(str,20);
- cout<
- }
当输入:abd cdrasdf g的时候就会输出:abd cdrasdf g。
2.cin.get()第一个用法,是读入一个字符。
- #include
- void main()
- {
- char str;
- cout<<"Input :";
- str=cin.get();
- cout<
- }
当你输入“ABAF”的时候,只会显示“A”,因为只读入了一个字符(空格也可以读入)。
3.cin.get()第二个用法,也是输入一行(同cin.getline()),但是区别就是,不输出分隔符。
希望通过以上内容的介绍,能够给你带来帮助。
本文标题:解析C++中get()和getline()的区别(一)
网站网址:http://www.shufengxianlan.com/qtweb/news5/388005.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联