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 輸入達到最大限度。輸入流成員...