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
]


Copyright(C) 2006-2012 CLAYPOT. All Rights Reserved.