名前空間
変種
操作

fgets

提供: cppreference.com
< c‎ | io
 
 
ファイル入出力
関数
ファイルアクセス
直接入出力
書式なし入出力
fgets
(C11以前)(C11およびそれ以降)
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)
書式付き入力
書式付き出力
ファイル位置操作
エラー処理
ファイルに対する操作
 
ヘッダ <stdio.h> で定義
char *fgets( char          *str, int count, FILE          *stream );
(C99以前)
char *fgets( char *restrict str, int count, FILE *restrict stream );
(C99およびそれ以降)

指定されたファイルストリームから最大 count - 1 文字を読み込み、 str の指す文字配列にそれらを格納します。 ファイル終端に達したか改行が見つかった場合は読み込みを停止します。 改行が見つかった場合はその改行文字が str に格納されます。 エラーが発生しなければ、 str の最後の文字の直後の位置にヌル文字が書き込まれます。

count が1より小さい場合、動作は未定義です。

目次

[編集] 引数

str - 文字配列の要素を指すポインタ
count - 書き込む最大文字数 (一般的には str の長さ)
stream - データを読み込むファイルストリーム

[編集] 戻り値

成功した場合は str、失敗した場合はヌルポインタ。

失敗がファイル終端に達したことに起因する場合は、さらに streamファイル終端指示子 (feof() を参照) をセットします。 この場合、 str の指す配列の内容は変更されません。

失敗が何らかの他のエラーに起因する場合は、 streamエラー指示子 (ferror() を参照) をセットします。 str の指す配列の内容は不定になります (ヌル終端されない可能性もあります)。

[編集] ノート

POSIX はさらに、ファイル終端に達した以外の失敗が発生した場合、 fgetserrno を設定することを要求しています

標準の仕様は count==1 の場合に曖昧ですが、一般的な処理系は1文字も読み込まず、 str[0] にゼロを格納し、成功を報告します (str を返します)。

[編集]

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    FILE* tmpf = tmpfile();
    fputs("Alan Turing\n", tmpf);
    fputs("John von Neumann\n", tmpf);
    fputs("Alonzo Church\n", tmpf);
 
    rewind(tmpf);
 
    char buf[8];
    while (fgets(buf, sizeof buf, tmpf) != NULL)
          printf("\"%s\"\n", buf);
 
    if (feof(tmpf))
       puts("End of file reached");
}

出力:

"Alan Tu"
"ring
"
"John vo"
"n Neuma"
"nn
"
"Alonzo "
"Church
"
End of file reached

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.21.7.2 The fgets function (p: 331)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.19.7.2 The fgets function (p: 296)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.9.7.2 The fgets function

[編集] 関連項目

stdin、ファイルストリームまたはバッファから書式付き入力を読み取ります
(関数) [edit]
(C11で削除)(C11およびそれ以降)
stdinから文字列を読み取ります
(関数) [edit]
ファイルストリームに文字列を書き込みます
Original:
writes a character string to a file stream
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(関数) [edit]
ストリームから自動的にサイズ変更されるバッファにデリミタまたはファイル終端まで読み込みます
(関数) [edit]