GetLine

GetLine

istream& getline ( istream &is , string &str , char delim );

istream& getline ( istream& , string& );

is 進行讀入操作的輸入流

str 存儲讀入的內容

delim 終結符

基本介紹

  • 中文名:getline
  • 別名:istream & getline
  • 本質:全局函式
  • 返回值:與參數is是一樣的
  • 領域:編程
  • 退出循環:ctrl+Z
簡述,返回值,功能,注意,成員函式,

簡述

返回值

與參數is是一樣的

功能

將輸入流is中讀到的字元存入str中,直到遇到終結符delim才結束。對於第一個函式delim是可以由用戶自己定義的終結符;對於第二個函式delim默認為 '\n'(換行符)。
函式在輸入流is中遇到檔案結束符(EOF)或者在讀入字元的過程中遇到錯誤都會結束。
在遇到終結符delim後,delim會被丟棄,不存入str中。在下次讀入操作時,將在delim的下個字元開始讀入。
舉例:
#include <string>//getline包含在string頭檔案里#include <iostream>using namespace std;int main(){    string str;    getline(cin , str , '#');    char c = getchar();    cout << str << ' ' << c << endl;    return 0;}
輸入為:aa#b
輸出為:aa b
再舉例:
getline()例程原始碼getline()例程原始碼
操作1:
操作1操作1
這裡輸入流實際上唯讀入了Nice to meet you!,#後面的Hello!並沒有存放到line中(仍停留在輸入緩衝區里)。
而且這裡把終止符設為#,你輸入的時候就算輸入幾個回車換行也沒關係,輸入流照樣會讀入,譬如:
操作2:
操作2操作2
這裡,輸入中的換行照樣被讀入到輸入流中並且輸出了。
(“再舉例”部分的原始碼在visual studio 中編譯通過,操作1、2也是在該環境下進行的。)

注意

這個getline是個全局函式,而不是istream/iostream的成員函式getline。
getline操作返回的是is(輸入流),在使用while(getline(cin,line))的時候若想退出循環應使用EOF或ctrl+Z。

成員函式

getline也可以作為成員函式使用
cin.getline(char* cha,int num,char f);
向cha中輸入num個字元,輸入過程中達到num個數或者提前遇到f字元,輸入結束。

相關詞條

熱門詞條

聯絡我們