getline 函式詳解

2021-07-02 12:35:45 字數 988 閱讀 6710

學習c++的同學可能都會遇到乙個getline()函式,譬如在c++premer中,標準string型別第二小節就是「用getline讀取整行文字」。書上給的程式如下:

int main()

string line;

cout

<<"please cin a line:"

getline(cin,line,'#');

cout

<"the line you give is:"line;

那麼當我輸入」you are the #best!」 的時候,輸入流實際上唯讀入了」you are the 「,#後面的並沒有存放到line中(應該是在緩衝區裡吧)。然後程式執行結果應該是這樣的:

please cin a line:you are the #best!

the line you give is:you are the

而且這裡把終止符設為#,你輸入的時候就算輸入幾個回車換行也沒關係,輸入流照樣會讀入,譬如:

please cin a

line:you are the best!//這裡輸入了乙個回車換行

thank you!

# //終止讀入

the line you give is:you are the best!//換行照樣讀入並且輸出

thank you!

ps:

一般來說:

getline函式接受兩個引數:乙個輸入流物件和乙個 string 物件。

getline 函式從輸入流的下一行讀取,並儲存讀取的內容到不包括換行符。(可以讀入空格)

只要 getline 遇到換行符,將停止讀入並返回。

如果第乙個字元就是換行符,則 string 引數將被置為空 string。

getline 函式將 istream 引數作為返回值,和輸入操作符一樣也把它用作判斷條件。

getline 函式詳解

學習c 的同學可能都會遇到乙個getline 函式,譬如在c premer中,標準string型別第二小節就是 用getline讀取整行文字 書上給的程式如下 int main 大家會發現執行時怎麼也跳不出迴圈,甚至會發生各種莫名其妙的錯誤。這是為什麼呢?在這裡我給大家做乙個詳細的講解。istrea...

getline 函式詳解

學習c 的同學可能都會遇到乙個getline 函式,譬如在c premer中,標準string型別第二小節就是 用getline讀取整行文字 書上給的程式如下 int main 大家會發現執行時怎麼也跳不出迴圈,甚至會發生各種莫名其妙的錯誤。這是為什麼呢?在這裡我給大家做乙個詳細的講解。istrea...

getline 函式詳解

學習c 的同學可能都會遇到乙個getline 函式,譬如在c premer中,標準string型別第二小節就是 用getline讀取整行文字 書上給的程式如下 int main 大家會發現執行時怎麼也跳不出迴圈,甚至會發生各種莫名其妙的錯誤。這是為什麼呢?在這裡我給大家做乙個詳細的講解。istrea...