cin在輸入空格的時候會自動結(jié)束輸入。相比之下,getline的優(yōu)點就是在輸入字符串的時候可以輸入空格。與此同時也有很多種用法。
創(chuàng)新互聯(lián)建站主要從事網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)鶴慶,10年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792用法一.getline()#includegetline(cin,temp,delim);
此函數(shù)可讀取整行,包括前導(dǎo)和嵌入的空格,并將其存儲在字符串對象中。遇到換行符或者EOF結(jié)束,不讀取換行符。delim是自己設(shè)定的結(jié)束符。
在使用getline讀入一整行時,如果前面使用getchar()、cin這類讀入了一個字母,但是不會讀入后續(xù)換行\(zhòng)n符號或者空格的輸入時,再接getline()就容易出現(xiàn)問題。
這是因為輸入數(shù)字之后,敲回車,產(chǎn)生的換行符仍然滯留在輸入流,接著就被getline(cin,s)給讀進(jìn)去了,此時的s=“\n”,所以實際上s只是讀入了一個換行符\n。
而若是前面使用getline(),再又用getline()進(jìn)行讀入,此時不會發(fā)生問題。getline()中讀入結(jié)束的回車后,結(jié)束符不放入緩存區(qū),會將讀入的\n直接去除,下一個輸入前,緩沖區(qū)為空,并不會因為回車留下\n。
如果前面用了cin、getchar(),可以在后面使用一個getchar()吃掉接下來的換行。
舉例:
#include#include#includeusing namespace std;
int main()
{string str;
getline(cin,str);
cout<
用法二.cin.getline()#includegetline(char * s,n);
getline(char * s,n,delim);
舉例:
#includeusing namespace std;
int main () {char name[256]
cout<< "Please, enter your name: ";
cin.getline (name,256);
cout<< name<< endl;
return 0;
}
注意事項getline()是string流的函數(shù),只能用于string類型的輸入操作。當(dāng)你定義了一個string類型變量,只能用getline()來輸入。
cin.getline是std流的函數(shù),用于char類型的輸入操作。當(dāng)你定義了一個char類型變量,只能用cin/cin.getline()輸入。
引用getline函數(shù)介紹
C++ getline函數(shù)用法詳解
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧