第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您好,想要求助關(guān)于C++中cin.ignore()的問題,內(nèi)容如下~

您好,想要求助關(guān)于C++中cin.ignore()的問題,內(nèi)容如下~

MM們 2021-12-09 11:07:52
新手,寫了下面一段語句前方省略int a,b,c;string name;cout<<"a: ";cin>>a;cout<<"b: ";cin>>b;cout<<"name: ";getline(cin,name);cout<<"c: ";cin>>c;后方省略我想要得到的結(jié)果是a:___b:___name:___c:___我試過了如果沒有cin.ignore(1000, '\n'),或者把它放在 cin a/cin c后,那么它就不會讓我輸入name直接讓我輸入c。如果放在cin b后,就沒問題。如果放在getline cin name后,它雖然會讓我輸入name,但是后來的輸出表明name值為空。我對ingnore這個語句還處于完全不怎么明白的狀態(tài),能幫我解釋下嗎
查看完整描述

2 回答

?
慕無忌1623718

TA貢獻1744條經(jīng)驗 獲得超4個贊

這只是我的猜測:讀入b時遇到回車截止,之后的getline函數(shù)把cin流中b之后的回車讀入了,于是將name置零了(這便是你說的ignore放在getline后的情況)。調(diào)用ignore后忽略掉了這個回車,于是可以讀取。用cin>>name應(yīng)該可以正常讀入,但是不能讀入空格。

查看完整回答
反對 回復(fù) 2021-12-13
?
哆啦的時光機

TA貢獻1779條經(jīng)驗 獲得超6個贊

實際上你在每次輸入數(shù)據(jù)的時候會輸入一個回車 ‘\n'
cin在讀入整數(shù)時候會忽略空白碰到非數(shù)字('\n')時停止
cin在getline時會把'\n'及之前的內(nèi)容讀回來,哪怕是空行也會讀入
cin在讀入字符時會把緩沖區(qū)內(nèi)當前字符讀入(不會忽略空白)
cin.ignore(1000, '\n')的含義是把緩沖區(qū)內(nèi)從當前字符開始知道'\n'之前字符(如果有1000個的話)忽略掉,實際上你這里假設(shè)一行不會超過1000個字符,所以含義是忽略一行

如果你想輸入a=1,b=2 name="xxxx", c='y'
所以你的輸入是
1回車2回車xxxx回車y回車
cin讀入a=1 碰到回車停止 此時1后面的回車還在緩沖區(qū)里
cin讀b=2時忽略2前面的回車但是停止在2后面的回車
此時你如果掉getline 就會讀入一個2后面回車前面的也就是空行 因此此時應(yīng)當調(diào)用一個cin.ignore(1000,'\n')把這個\n忽略掉



查看完整回答
反對 回復(fù) 2021-12-13
  • 2 回答
  • 0 關(guān)注
  • 338 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號