【轉(zhuǎn)載】C++中cin伞租、cin.get()、cin.getline()限佩、getline()葵诈、gets()等函數(shù)的用法

https://www.cnblogs.com/rixinren/archive/2010/03/23/1693052.html

學(xué)C++的時(shí)候,這幾個(gè)輸入函數(shù)弄的有點(diǎn)迷糊祟同;這里做個(gè)小結(jié)作喘,為了自己復(fù)習(xí),也希望對(duì)后來(lái)者能有所幫助晕城,如果有差錯(cuò)的地方還請(qǐng)各位多多指教(本文所有程序均通過(guò)VC 6.0運(yùn)行)

1泞坦、cin

2、cin.get()

3砖顷、cin.getline()

4贰锁、getline()

5、gets()

6滤蝠、getchar()

附:cin.ignore();cin.get()//跳過(guò)一個(gè)字符,例如不想要的回車(chē),空格等字符


1豌熄、cin>>?????????

用法1:最基本,也是最常用的用法物咳,輸入一個(gè)數(shù)字:

#include

using namespace std;

main ()

{

int a,b;

cin>>a>>b;

cout<<a+b<<endl;

}

輸入:2[回車(chē)]3[回車(chē)]?

輸出:5

注意:>> 是會(huì)過(guò)濾掉不可見(jiàn)字符(如 空格 回車(chē)锣险,TAB 等)?

cin>>noskipws>>input[j];//不想略過(guò)空白字符,那就使用 noskipws 流控制

用法2:接受一個(gè)字符串所森,遇“空格”囱持、“TAB”夯接、“回車(chē)”都結(jié)束

#include

using namespace std;

main ()

{

char a[20];

cin>>a;

cout<<a<<endl;?

}

輸入:jkljkljkl

輸出:jkljkljkl

輸入:jkljkl jkljkl?????? //遇空格結(jié)束

輸出:jkljkl


2焕济、cin.get()

用法1:?cin.get(字符變量名)可以用來(lái)接收字符

#include

using namespace std;

main ()

{

char ch;

ch=cin.get();?????????????? //或者cin.get(ch);

cout<<ch<<endl;

}

輸入:jljkljkl

輸出:j

用法2:cin.get(字符數(shù)組名,接收字符數(shù)目)用來(lái)接收一行字符串,可以接收空格

#include

using namespace std;

main ()

{

char a[20];

cin.get(a,20);

cout<<a<<endl;

}

輸入:jkl jkl jkl

輸出:jkl jkl jkl

輸入:abcdeabcdeabcdeabcdeabcde (輸入25個(gè)字符)

輸出:abcdeabcdeabcdeabcd????????????? (接收19個(gè)字符+1個(gè)'\0')

用法3:cin.get(無(wú)參數(shù))沒(méi)有參數(shù)主要是用于舍棄輸入流中的不需要的字符,或者舍棄回車(chē),彌補(bǔ)cin.get(字符數(shù)組名,接收字符數(shù)目)的不足.

這個(gè)我還不知道怎么用,知道的前輩請(qǐng)賜教盔几;


3晴弃、cin.getline()?? // 接受一個(gè)字符串,可以接收空格并輸出

#include

using namespace std;

main ()

{

char m[20];

cin.getline(m,5);

cout<<m<<endl;

}

輸入:jkljkljkl

輸出:jklj

接受5個(gè)字符到m中,其中最后一個(gè)為'\0'上鞠,所以只看到4個(gè)字符輸出际邻;

如果把5改成20:

輸入:jkljkljkl

輸出:jkljkljkl

輸入:jklf fjlsjf fjsdklf

輸出:jklf fjlsjf fjsdklf

//延伸:

//cin.getline()實(shí)際上有三個(gè)參數(shù),cin.getline(接受字符串的看哦那間m,接受個(gè)數(shù)5,結(jié)束字符)

//當(dāng)?shù)谌齻€(gè)參數(shù)省略時(shí)芍阎,系統(tǒng)默認(rèn)為'\0'

//如果將例子中cin.getline()改為cin.getline(m,5,'a');當(dāng)輸入jlkjkljkl時(shí)輸出jklj世曾,輸入jkaljkljkl時(shí),輸出jk

當(dāng)用在多維數(shù)組中的時(shí)候谴咸,也可以用cin.getline(m[i],20)之類(lèi)的用法:

#include

#include

using namespace std;

main ()

{

char m[3][20];

for(int i=0;i<3;i++)

{

cout<<"\n請(qǐng)輸入第"<<i+1<<"個(gè)字符串:"<<endl;

cin.getline(m[i],20);

}

cout<<endl;

for(int j=0;j<3;j++)

cout<<"輸出m["<<j<<"]的值:"<<m[j]<<endl;

}

請(qǐng)輸入第1個(gè)字符串:

kskr1

請(qǐng)輸入第2個(gè)字符串:

kskr2

請(qǐng)輸入第3個(gè)字符串:

kskr3

輸出m[0]的值:kskr1

輸出m[1]的值:kskr2

輸出m[2]的值:kskr3


4轮听、getline()???? // 接受一個(gè)字符串,可以接收空格并輸出岭佳,需包含“#include<string>”

#include

#include

using namespace std;

main ()

{

string str;

getline(cin,str);

cout<<str<<endl;

}

輸入:jkljkljkl

輸出:jkljkljkl

輸入:jkl jfksldfj jklsjfl

輸出:jkl jfksldfj jklsjfl

和cin.getline()類(lèi)似血巍,但是cin.getline()屬于istream流,而getline()屬于string流珊随,是不一樣的兩個(gè)函數(shù)


5述寡、gets()??????? // 接受一個(gè)字符串,可以接收空格并輸出叶洞,需包含“#include<string>”

#include

#include

using namespace std;

main ()

{

char m[20];

gets(m);?????????????????????? //不能寫(xiě)成m=gets();

cout<

}

輸入:jkljkljkl

輸出:jkljkljkl

輸入:jkl jkl jkl

輸出:jkl jkl jkl

類(lèi)似cin.getline()里面的一個(gè)例子鲫凶,gets()同樣可以用在多維數(shù)組里面:

#include

#include

using namespace std;

main ()

{

char m[3][20];

for(int i=0;i<3;i++)

{

cout<<"\n請(qǐng)輸入第"<

gets(m[i]);

}

cout<

for(int j=0;j<3;j++)

cout<<"輸出m["<

}

請(qǐng)輸入第1個(gè)字符串:

kskr1

請(qǐng)輸入第2個(gè)字符串:

kskr2

請(qǐng)輸入第3個(gè)字符串:

kskr3

輸出m[0]的值:kskr1

輸出m[1]的值:kskr2

輸出m[2]的值:kskr3

自我感覺(jué)gets()和cin.getline()的用法很類(lèi)似,只不過(guò)cin.getline()多一個(gè)參數(shù)罷了衩辟;

這里順帶說(shuō)明一下掀序,對(duì)于本文中的這個(gè)kskr1,kskr2,kskr3的例子,對(duì)于cin>>也可以適用惭婿,原因是這里輸入的沒(méi)有空格不恭,如果輸入了空格,比如“ks kr jkl[回車(chē)]”那么cin就會(huì)已經(jīng)接收到3個(gè)字符串财饥,“ks,kr,jkl”换吧;再如“kskr 1[回車(chē)]kskr 2[回車(chē)]”,那么則接收“kskr,1,kskr”钥星;這不是我們所要的結(jié)果沾瓦!而cin.getline()和gets()因?yàn)榭梢越邮湛崭瘢圆粫?huì)產(chǎn)生這個(gè)錯(cuò)誤谦炒;


6贯莺、getchar()?? //接受一個(gè)字符,需包含“#include<string>”

#include

#include

using namespace std;

main ()

{

char ch;

ch=getchar();??????????????????????? //不能寫(xiě)成getchar(ch);

cout<

}

輸入:jkljkljkl

輸出:j

//getchar()是C語(yǔ)言的函數(shù)宁改,C++也可以兼容缕探,但是盡量不用或少用;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末还蹲,一起剝皮案震驚了整個(gè)濱河市爹耗,隨后出現(xiàn)的幾起案子耙考,更是在濱河造成了極大的恐慌,老刑警劉巖潭兽,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倦始,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡山卦,警方通過(guò)查閱死者的電腦和手機(jī)鞋邑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)账蓉,“玉大人炫狱,你說(shuō)我怎么就攤上這事√拊常” “怎么了视译?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)归敬。 經(jīng)常有香客問(wèn)我酷含,道長(zhǎng),這世上最難降的妖魔是什么汪茧? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任椅亚,我火速辦了婚禮,結(jié)果婚禮上舱污,老公的妹妹穿的比我還像新娘呀舔。我一直安慰自己,他們只是感情好扩灯,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布媚赖。 她就那樣靜靜地躺著,像睡著了一般珠插。 火紅的嫁衣襯著肌膚如雪惧磺。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天捻撑,我揣著相機(jī)與錄音磨隘,去河邊找鬼。 笑死顾患,一個(gè)胖子當(dāng)著我的面吹牛番捂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播江解,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼设预,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了膘流?” 一聲冷哼從身側(cè)響起絮缅,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鲁沥,失蹤者是張志新(化名)和其女友劉穎呼股,沒(méi)想到半個(gè)月后耕魄,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡彭谁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年吸奴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缠局。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡则奥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狭园,到底是詐尸還是另有隱情读处,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布唱矛,位于F島的核電站罚舱,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏绎谦。R本人自食惡果不足惜管闷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窃肠。 院中可真熱鬧包个,春花似錦、人聲如沸冤留。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)纤怒。三九已至呕臂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肪跋,已是汗流浹背歧蒋。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留州既,地道東北人谜洽。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像吴叶,于是被迫代替她去往敵國(guó)和親阐虚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容