c 中使用getline怎麼讀檔案?

2023-07-09 23:20:07 字數 2913 閱讀 3066

1樓:勞煙苦雨

在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位元組資料。

2樓:後汀蘭洪辰

因為getline有三個引數,第三個引數是字串的結束符,也就是當getline遇到這個結束符時,就不在接受輸入了,比如寫成。

getline(cin,st,'s');

即使輸入的是abcsabc

那麼也只會顯示。

abc,因此對於上面出現的情況,getline預設情況下以回車(''作為結束符,第一次按回車表示字串結束,第二次按回車才開始輸出。

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

c++中getline 是什麼意思?

3樓:匿名使用者

istream& getline ( istream& ,string& )

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

4樓:風若遠去何人留

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,''

5樓:匿名使用者

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

c++中,getline函式的詳解

6樓:匿名使用者

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中。

7樓:蘿蔔肥

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

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

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

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

8樓:網友

getline

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

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

9樓:匿名使用者

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中使用DrawString繪製文字時怎樣使文字居中或右對

continue語句用於迴圈語句中,作用是不執行迴圈體剩餘部分,直接進行下次迴圈。c 中使用drawstring繪製文字時怎樣使文字居中或右對齊 void 繪製文字zhi graphics 畫家 如上。如滿意,請採納,謝謝。c 中使用drawstring繪製文字時怎樣使文字居中或右對齊 format...

請問C 中使用extern關鍵字定義變數的意義

它只有宣告的意思,說明這個變數在別的地方已經定義過了。一般是全域性變數才會加這個宣告,當然,他們是同乙個變數。就好比1.cpp檔案定義了乙個int a,2.cpp檔案也定義了乙個 int a。這樣他們就有可能重複定義,如果2.cpp中加上extern那麼就知道2.cpp中的a在其他地方定義過了,和1...

列夫托爾斯泰一文中使用的修辭手法的句子及作用

修辭手法有比喻和誇張 修辭手法的作用略 作用先寫托爾斯泰外表醜陋,襯托出他眼睛的犀利,和豐富 也就是欲揚先抑 修辭手法有比喻和誇張 修辭手法的作用略 作用先寫托爾斯泰外表醜陋,襯托出他眼睛的犀利,和豐富 也就是欲揚先抑 修辭手法有比喻和誇張 修辭手法的作用略 作用先寫托爾斯泰外表醜陋,襯托出他眼睛的...