輸入字串先用cin後用getline函式失效原因

2022-08-05 03:00:19 字數 593 閱讀 4449

string

str,sentence;

cin >>str;

getline(cin, sentence);

cout

<< str << "

"<< sentence << "

";

以上**定義兩個字串,分別想要為其賦值為"hello"  "hello world",但是執行後僅僅能輸入hello 回車 就結束了

猜測原因應該是getline是從緩衝區的\n開始讀,而getline函式又是以讀到\n為結束,所以導致失敗

正確讀入多個字串且字串含有空格的方法是:

string

str,sentence;

getline(cin, str);

getline(cin, sentence);

cout

<< str << "

"<< sentence << "

";

直接使用多個getline函式,我人傻了。。。

cin和getline函式的簡單區別:cin遇到(回車,空格,tab)就結束讀取,而getline遇到換行結束讀取

cin輸入不定長的字串

正常情況下,cin遇到空格結束讀取,寫個小例子 int main string a cin a cout 如何讀取帶空格的字串呢,通常由三種方式如下 include using namespace std main char a 20 cin.get a,20 coutmain char m 20 ...

字串輸入

之前在學習input的時候,通過它能夠完成從鍵盤獲取資料,然後儲存到指定的變數中 注意 input獲取的資料,都以字串的方式進行儲存,即使輸入的是數字,那麼也是以字串方式儲存 demo username input 請輸入使用者名稱 print 使用者名為 s username password i...

字串輸入連線比較還有關於cin的問題

連線比較呼叫類就可以了,但是一開始把幾個東西寫一起總是不過,覺得很神奇.後來發現時cin輸出流的問題,因為殘留了個回車,所以清了就好了。include includeusing namespace std int main cin.clear 把輸入流的換行符清掉!一定要有,否則下面的不執行!sys...