[形式]
int get();
istream& get(char* pch, int nCount, char delim = '\n');
istream& get(unsigned char* puch, int nCount, char delim = '\n');
istream& get(signed char* psch, int nCount, char delim = '\n');
istream& get(char& rch);
istream& get(unsigned char& ruch);
istream& get(signed char& rsch);
istream& get(streambuf& rsb, char delim = '\n');
pch, puch, psch : 文字配列へのポインタ
nCount : 文字列の終わりを示す NULL 文字を含む最大格納文字数
delim : 区切り文字 (デフォルトは改行文字)
rch, ruch, rsch : 文字への参照
rsb : streambuf 派生クラスのオブジェクトへの参照
[使用例]
- get,getline,および,fgetc の比較
#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int k;
char str[81];
/*
区切り文字までの入力(getline と get)
*/
ifstream in1("data");
// 1行目の入力(改行を除く)
in1.get(str, 20);
cout << str << endl;
// 1行目の改行文字のため何も入力しない
in1.get(str, 20);
cout << str << endl;
// 1行目の改行を入力
in1.getline(str, 20);
cout << str << endl;
// 2行目を入力
in1.getline(str, 20);
cout << str << endl;
in1.close();
/*
1文字入力(get)
*/
in1.open("data");
k = 0;
while (!in1.eof()) {
str[k] = in1.get();
k++;
}
str[k] = '\0';
cout << str << endl;
in1.close();
/*
1文字入力(fgetc)
*/
FILE *in2;
in2 = fopen("data", "r");
k = 0;
while ((str[k] = fgetc(in2)) != EOF)
k++;
str[k] = '\0';
cout << str;
fclose(in2);
return 0;
}
(出力)たとえば,ファイル「data」に
First test data
Second test data
のようなデータが入っていた場合は,以下のように出力される.
First test data
Second test data
First test data
Second test data
First test data
Second test data
[参照]