Loose-Info.com

Last Update 2019/12/24


TOP - C言語 - stdio.h - fgets()

ファイル・ポインタで参照されるストリームから文字列(行)を読み取ります。

 戻り値1  = fgets(  引数1  ,  引数2  ,  引数3  )

戻り値1 :
char *
実行が成功した場合
読み取った文字列(行)へのポインタ
エラーが発生した場合
NULL
ファイルの終端に達した場合
NULL
引数1 :
char *
読み込んだ文字列(行)を記憶する文字配列へのポインタ
引数2 :
int
読み込む文字数(実際に読み込まれる文字数 + 1)
読み込まれた文字列の最後に「\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 ]