Last Update 2012/07/05
ファイル・ポインタで参照されるストリームから文字列(行)を読み取ります。
戻り値1 = fgets( 引数1 , 引数2 , 引数3 )
戻り値1 :
char *
実行が成功した場合
読み取った文字列(行)へのポインタ
エラーが発生した場合
NULL
ファイルの終端に達した場合
NULL
引数1 :
char *
読み込んだ文字列(行)を記憶する文字配列へのポインタ
引数2 :
int
読み込む文字数(実際に読み込まれる文字数 + 1)
読み込まれた文字列の最後に「\0」が付け加えられる
読み込まれた文字列の最後に「\0」が付け加えられる
引数3 :
FILE *
ファイル・ポインタ
(例)
#include <stdio.h>
int main ()
{
char s1[5] = "1234";
char s2[5];
char *c;
printf("「EOF」の入力は[control]+D\n");
while (fgets(s1, 5, stdin) != NULL)
{
printf("読み込み内容 : s1 = [%s]\n", s1);
}
printf("ループ終了 : s1 = [%s] : eof = [%d] : error = [%d]\n", s1, feof(stdin)
, ferror(stdin));
clearerr(stdin); // EOFインジケータをクリア
c = fgets(s2, 5, stdin);
printf("読み込み内容 : s2 = [%s]\n", s2);
printf("戻り値 : [%s]\n", c);
return 0;
}
実行結果(「123456[enter]」→「[control]+D」→「123[enter]」の順で入力)
「EOF」の入力は[control]+D
123456
読み込み内容 : s1 = [1234]
読み込み内容 : s1 = [56
]
ループ終了 : s1 = [56
] : eof = [1] : error = [0]
123
読み込み内容 : s2 = [123
]
戻り値 : [123
]