C++中本質上有兩種getline函數,壹種在頭文件<istream>中,是istream類的成員函數。壹種在頭文件<string>中,是普通函數。
壹、在<istream>中的getline函數有兩種重載形式:
istream& getline (char* s, streamsize n );
istream& getline (char* s, streamsize n, char delim );
作用是從istream中讀取至多n個字符保存在s對應的數組中。即使還沒讀夠n個字符,如果遇到換行符'\n'(第壹種形式)或delim(第二種形式),則讀取終止,'\n'或delim都不會被保存進s對應的數組中。
二、在<string>中的getline函數有四種重載形式:
istream& getline (istream& ?is, string& str, char delim);istream& getline (istream&& is,?
string& str, char delim);istream& getline (istream& ?is, string& str);
istream& getline (istream&& is, string& str);
用法和上壹種類似,不過要讀取的istream是作為參數is傳進函數的。讀取的字符串保存在string類型的str中。
擴展資料:
getline不是C庫函數,而是gcc的擴展定義或者C++庫函數。它會生成壹個包含壹串從輸入流讀入的字符的字符串,直到以下情況發生會導致生成的此字符串結束。
1)到文件結束,
2)遇到函數的定界符,
3)輸入達到最大限度。
參考資料: