cin和getline()


在做在线编程的时候,好多人都是用到 getline()函数,而不是用的cin。刚开始还觉得都可以吧。直到遇到了输入有空格的情况。

那么我们这里就来说说 cin和getline() 的区别。

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

 

注意到  高亮部分。cin遇“空格”、“TAB”、“回车”都结束。这就有很大局限性了。

 

2、getline()     // 接受一个字符串,可以接收空格并输出,需包含“#include<string>”

#include<iostream>
#include<string>
using namespace std;
main ()
{
string str;
getline(cin,str);
cout<<str<<endl;
}

输入:jkljkljkl
输出:jkljkljkl

输入:jkl jfksldfj jklsjfl
输出:jkl jfksldfj jklsjfl

注意:getline()函数不是基于istream流,它是属于string流。

 

当然还有其他的如:cin、cin.get()、cin.getline()、getline()、gets()。这里不做介绍。

参考:http://blog.csdn.net/caojunling/article/details/1890519


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM