getline()函式是乙個比較常見的函式。根據名字直接望文生義,就知道這個函式是來完成讀入一行資料。
下面就對c++ – getline()函式的用法說明,以及getline()函式作為while條件的問題,總結一下:
在c++中本質上有兩種getline函式:
第一種:在標頭檔案中,是iostream類的成員函式。
第二種:在標頭檔案中,是普通函式。
第一種: 在中的getline()函式有兩種過載形式:
istream& getline (char* s, streamsize n );
istream& getline (char* s, streamsize n, char delim );
作用是: 從istream中讀取至多n個字元(包含結束標記符)儲存在s對應的陣列中。即使還沒讀夠n個字元,
如果遇到delim 或 字數達到限制,則讀取終止,delim都不會被儲存進s對應的陣列中。
*例程**:
#include
//使用標準輸入流和標準輸出流。
// std::cin ; std::cout ; std::endl
intmain()
//輸入:
mr. ling
you are wonderful !
//輸出:
mr. ling, you are wonderful !
通過字數限制和設定終止符修改的**:
#include
//使用標準輸入流和標準輸出流。
// std::cin ; std::cout ; std::endl
intmain()
//輸入: //streamsize限定,截斷輸出
wonderful
//輸出:
wonde
//輸入: //所設定的結束識別符號,截斷輸出
won#derful
//輸出:
won第二種: 在中的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中。
函式的變數:
is :表示乙個輸入流,例如 cin。
str :string型別的引用,用來儲存輸入流中的流資訊。
delim :char型別的變數,所設定的截斷字元;在不自定義設定的情況下,遇到』\n』,則終止輸入。
例程**:
#include
#include
intmain()
在輸入時,直至遇到『\n』或eof, 才終止輸入操作。
(eof是c語言中為了區分有效資料和輸入結束符的。
eof的輸入由系統鎖定。windows下是ctrl+z,linux/unix下是ctrl+d。)
getline不是c庫函式,而是c++庫函式。它遇到以下情況發生會導致生成的本字串結束:
(1)到檔案結束,(2)遇到函式的定界符(預設定界符就是換行符,所以遇到換行會返回),(3)輸入達到最大限度。
getline()函式在while中作為條件判斷。
#include
#include
using
namespace std;
intmain()
getline()函式的原型是istream& getline ( istream & is , string & str , char delim );
這個語句中,while判斷語句的真實判斷物件是cin的狀態,也就是判斷當前是否存在有效的輸入流。
而輸入流是物件,判斷的是流返回的狀態。所以正常的情況下,你怎麼輸入都是跳不出它的迴圈。
在這之中可能會用些同志誤以為while判斷語句的判斷物件是line(也就是line是否為空),想通過回車來跳出迴圈,卻發現不能跳出迴圈。
而回車和設定的終止符都是終止getline()函式的讀取操作的。但是while判斷語句判斷的是getline()函式的輸入流是否有效。所以呢!
最後還有乙個問題就是,getline函式讀取到的一行,結尾沒有換行符。
由輸出結果hello和fff連在一起即可驗證。
C 中的getline 函式
getline 函式是c 庫函式。它會生成乙個包含一串從輸入流讀入的字元的字串,直到以下情況發生會導致生成的此字串結束。1 到檔案結束,2 遇到函式的定界符,3 輸入達到最大限度。我們一般用string輸入字串時不能讀取空格,我們可以用getline 函式從輸入流中讀取,getline 函式之前的回...
C 中的getline函式
c 中本質上有兩種getline函式,一種在標頭檔案 istream 中,是istream類的成員函式。一種在標頭檔案 string 中,是普通函式。一 在 istream 中的getline函式有兩種過載形式 istream getline char s,streamsize n istream ...
c實現getline函式
getline函式可以獲取檔案中的一行資料。原函式形式為 ssize t getline char linepter,size t n,file stream 返回型別ssize t為有符號整形,其值為獲取的字元數,檔案結束則返回 1,包括換行符 n 但不包括字串結束符 0 linepter用來儲存...