C 多種定義的getline函式使用

2021-10-11 12:37:21 字數 2454 閱讀 6557

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用來儲存...