c 中關於getline函式讀取資料的問題

時間 2023-03-19 02:00:03

1樓:黃邦勇帥哥哥

getline的原型如下:

getline(char* c,int i,char c); 表示讀入i個字元,或者遇到結束符c為止的字元數,儲存到c中。

getline(char*,int); 表示讀入i個字元到c中。注意讀入的字元數應比實際的大1,因為讀入的是字串,字串將會以'\0'作為結束,如果你要讀入3個字元,那麼i的值應該為4。

注意getline會讀取並丟棄分界符。

後面的自已搞定,建立一個檔案流類物件,然後用這個檔案流來呼叫getline函式,比如。

ifstream hy1(「建立hy1流,並開啟檔案以便讀取內容。

char c[333];,3,'0');表示,把hy1流關聯的hyong1中3個字元或者遇到'0'的字元數讀入到c中。

2樓:匿名使用者

不用getline,直接用》

不是說cin, cout, fstream 類也是支援》的。你可以貼下你的**。

c++中,getline函式的詳解

3樓:匿名使用者

c++中本質上有兩種getline函式,一種在標頭檔案中,是istream類的成員函式。一種在標頭檔案中,是普通函式。

一、在中的getline函式有兩種過載形式:

istream& getline (char* s, streamsize n );

istream& getline (char* s, streamsize n, char delim );

作用是從istream中讀取至多n個字元儲存在s對應的陣列中。即使還沒讀夠n個字元,如果遇到換行符''(第一種形式)或delim(第二種形式),則讀取終止,''或delim都不會被儲存進s對應的陣列中。

二、在中的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中。

4樓:蘿蔔肥

char s[1000]; 中括號裡的數字小於1000可能會出錯,但不一定出錯,原因上面已講)

或者char* s=new char[1000];

或者char a[1000];char * s=a;

或者char a[1000];char *s=&a[0];

5樓:網友

getline

語法

getline()函式用於輸入流,讀取字元到buffer中,直到下列情況發生:

num - 1個字元已經讀入,碰到一個換行標誌,碰到一個eof,或者,任意地讀入,直到讀到字元字元不會被放入buffer中。

6樓:匿名使用者

getline功能getline是string類物件的成員函式,屬於string io 操作。用於讀取整行文字。

getline引數getline(cin,str);cin:輸入流str:string物件。

getline說明getline函式從輸入流的下一行讀取,並儲存讀取的內容到str中,但不包括換行符。getline 函式將 istream 引數作為返回值,和輸入操作符一樣也把它用作判斷條件。 範例:

#include #include using namespace std; int main() 結果: 輸入 line1 --回車換行 顯示為空 輸入 line2 --回車換行 顯示 line1 輸入 line3 --回車換行 顯示 line2 --以此類推。

c++中使用getline怎麼讀檔案?

7樓:風若遠去何人留

在c++中,getline函式是用來從標準輸入流cin中讀取整行資料的。即預設情況下,getline讀的不是哪個檔案,而是命令列中鍵盤的輸入。

要使用getline讀檔案,首先要做的就是將cin重定向到要讀的檔案中。可以採用以下**實現。

streambuf *backup;

ifstream fin;

"")開啟要讀的檔案。

backup = 備份cin本身的緩衝區。

將cin的緩衝區重定向到檔案。

// 執行需要的讀操作,包括getline。

; 恢復原始的cin緩衝區。

在執行。後就可以使用getline從檔案中讀取整行資料了。

getline的呼叫方式為。

getline(char * buf, int size);

即讀取一行資料,存到buf中,如果資料長度超過size指定的長度,那麼只讀size位元組資料。

8樓:匿名使用者

因為getline有三個引數,第三個引數是字串的結束符,也就是當getline遇到這個結束符時,就不在接受輸入了,比如寫成 getline(cin,st,'s');即使輸入的是abcsabc 那麼也只會顯示 abc ,因此對於上面出現的情況,getline預設情況下以回車(''作為結束符,第一次按回車表示字串結束,第二次按回車才開始輸出。

你可以通過多讀一次char的方法放掉這個回車符。這個在c++程式設計思想裡有很詳細的解釋,你可以找來看看的。

c++中getline 是什麼意思?

9樓:匿名使用者

istream& getline ( istream& ,string& )

都是將輸入流的字元讀入到字串中,上面那個以你設定的終結符為結束標誌,下面那個以換行符''作為結束。如果讀到eof或者遇到錯誤也會結束。

10樓:風若遠去何人留

getline是c++中的一個輸入函式,作用為從標準輸入讀入整行資料,並存為字元陣列(char*或cha)。

getline有兩種過載:

1、 istream& getline(char* s, int n);

該操作為,從輸入中讀取整行資料,當遇到換行符時結束輸入。如果在輸入過程中,輸入實際字元數量超過引數n的值,同樣會結束輸入。輸入結果存在字元指標s指向的空間中。

2、istream& getline(char* s, int n, char delim);

這一過載較1中多了一個字元型的delim,其功能為設定結束字元。

當讀入時,遇到字元與delim值相等時,結束輸入。除此外,其他與1中相同。

即,getline(s,n);

等同於getline(s,n,''

11樓:匿名使用者

取得開啟檔案中 一行的資料。

c語言讀取檔案的函式程式解釋,C語言讀取檔案的函式 程式解釋

原來是空連結串列,p1,p2原來是兩個空節點,迴圈裡面p1先申請一塊記憶體塊,得到一個結點,並且這個結點從檔案輸入了資料 然後p2 next p1 就是得到連結串列 head p2 p1 p2 p1,那麼連結串列就是 head 空節點 p2,下一次迴圈,p1又申請了一塊記憶體並得到一個節點,p2 n...

c如何讀取SQL中的資料,C 中怎麼讀取SQL資料庫表中的資料後顯示在一個TEXTBOX中

string strconn data source 資料庫伺服器名稱或ip initial catalog 資料庫名稱 persist security info true user id sa password password sqlconnection conn new sqlconnect...

c如何在建構函式中啟動執行緒,從命名管道讀取資料

1 c 多執行緒也可以使用unix c的庫函式,pthread mutex t,pthread create,pthread cond t,pthread detach,pthread mutex lock unlock,等等。在使用多執行緒的時候,你需要先建立執行緒,使用pthread creat...