在做在线编程的时候,好多人都是用到 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