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