C 中getline函式用法 修正除錯ok

2021-05-27 09:45:51 字數 1752 閱讀 4969

c++中getline函式用法

getline() 

語法: 

istream &getline( char *buffer, streamsize num ); 

istream &getline( char *buffer, streamsize num, char delim ); 

用getline()讀取字元到buffer中,buffer在**中通常體現為乙個字元陣列,streamsize num是一次讀入多少個字元, 

num - 1個字元已經讀入, 

當碰到乙個換行標誌, 

碰到乙個eof, 

或者任意地讀入,直到讀到字元delim。delim字元不會被放入buffer中。delim字元可以自已設定,預設為回車符'/n' 

我的理解:

第乙個引數為要儲存的指定字元陣列。

第二個引數為抽取、讀取指定數目的字元。 

第三個引數指定結束字元,預設為"\n";

#include

#include

#include

#include

using namespace std;

const int n=10;

int main()

while(fin.getline(str,sizeof(str)))

coutcin.get();

return 0;}

下面是另外整的例項

例如:檔案data.txt內容

1 輕 無 疼 燒 輕

2 輕 無 疼 正常 輕

通過c++ fstream和getline的方法將資訊讀到乙個二維陣列string data

方法一:(適用於已知行數和列數,且要求以空格或製表符間隔)

#include

#include

using namespace std;

#include

int main()

}ifile.close();}

方法二:(未知行數和列數 且 分割符不限於 空格)

#include

#include

#include

#include

using namespace std;

typedef vector> vvs;

void main()

} infile.close();  //關閉文字檔案

row ++; col++;  //讀檔案得到的行列數均加1才是真正的行列數(注意:檔案最後沒有空白行)

vvs data; // 定義二維字串陣列

data.resize(row);

for(k = 0; k < row; k ++)

data[k].resize(col);

ifstream infile2("data.txt");

int trow, tcol;

trow = tcol = 0;

string str;

while(trow < row)//迴圈比較,以行數作為限制

getline(infile2,str,'\n');  //將回車符作為物件進行資料輸入,以判斷一行是否結束

data[trow][tcol] = str; 

//將回車符前面的資料讀入到相應的字串陣列中

tcol = 0; 

//列數賦值為1,準備下一行的判斷

trow ++; 

//行數+1

} infile2.close();

getline 函式用法

學習c 的同學可能都會遇到乙個getline 函式,譬如在c premer中,標準string型別第二小節就是 用getline讀取整行文字 書上給的程式如下 int main string line while getline cin,line cout 大家會發現執行時怎麼也跳不出迴圈,甚至會發...

C 中getline 的用法

getline是c 標準庫函式 它有兩種形式,一種是標頭檔案 istream 中輸入流成員函式 一種在標頭檔案 string 中普通函式 它遇到以下情況發生會導致生成的本字串結束 1 到檔案結束,2 遇到函式的定界符,3 輸入達到最大限度。函式語法結構 在 istream 中的getline 函式有...

C 中getline 的用法詳解

getline 用法 getline是c 標準庫函式 它有兩種形式,一種是標頭檔案 istream 中輸入流成員函式 一種在標頭檔案 string 中普通函式 它遇到www.cppcns.com以下情況發生會導致生成的本字串結束 1 到檔案結束,2 遇到函式的定界符,3 輸入達到最大限度。輸入流成員...