-
GetLine
鎖定
istream& getline ( istream &is , string &str , char delim );
istream& getline ( istream& , string& );
is 進行讀入操作的輸入流
str 存儲讀入的內容
delim 終結符
- 中文名
- getline
- 別 名
- istream & getline
- 本 質
- 全局函數
- 返回值
- 與參數is是一樣的
- 領 域
- 編程
- 退出循環
- ctrl+Z
GetLine簡述
GetLine返回值
與參數is是一樣的
GetLine功能
將輸入流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
再舉例:
操作1:
這裏輸入流實際上只讀入了Nice to meet you!,#後面的Hello!並沒有存放到line中(仍停留在輸入緩衝區裏)。
而且這裏把終止符設為#,你輸入的時候就算輸入幾個回車換行也沒關係,輸入流照樣會讀入,譬如:
操作2:
這裏,輸入中的換行照樣被讀入到輸入流中並且輸出了。
(“再舉例”部分的源代碼在visual studio 中編譯通過,操作1、2也是在該環境下進行的。)
GetLine注意
這個getline是個全局函數,而不是istream/iostream的成員函數getline。
getline操作返回的是is(輸入流),在使用while(getline(cin,line))的時候若想退出循環應使用EOF或ctrl+Z。
GetLine成員函數
getline也可以作為成員函數使用
cin.getline(char* cha,int num,char f);
向cha中輸入num個字符,輸入過程中達到num個數或者提前遇到f字符,輸入結束。
- 參考資料
-
- 1. getline()函數詳解 .新浪博客.2013-3-26[引用日期2013-04-12]