名前空間
変種
操作

fgetc, getc

From cppreference.com
< c‎ | io
 
 
ファイル入出力
型とオブジェクト
        
関数
ファイルアクセス
(C95)
非書式化入出力
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)

書式付き入力
直接入出力
書式付き出力
ファイルポジショニング
エラーハンドリング
ファイル操作
 
ヘッダー <stdio.h> で定義
int fgetc( FILE* stream );
(1)
int getc( FILE* stream );
(2)
1) 指定された入力ストリームから次の文字を読み取ります。
2) fgetc と同じですが、getc がマクロとして実装されている場合、stream を複数回評価する可能性があるため、対応する引数は副作用のある式であってはなりません。

目次

[編集] パラメータ

stream - から文字を読み取る

[編集] 戻り値

成功した場合、取得した文字を unsigned char として int に変換して返します。失敗した場合、EOF を返します。

失敗がファイルの終端条件によって引き起こされた場合、さらに streameof インジケータ ( feof() を参照) を設定します。失敗がその他のエラーによって引き起こされた場合、streamerror インジケータ ( ferror() を参照) を設定します。

[編集]

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    const char* fname = "/tmp/unique_name.txt"; // or tmpnam(NULL);
    int is_ok = EXIT_FAILURE;
 
    FILE* fp = fopen(fname, "w+");
    if (!fp)
    {
        perror("File opening failed");
        return is_ok;
    }
    fputs("Hello, world!\n", fp);
    rewind(fp);
 
    int c; // note: int, not char, required to handle EOF
    while ((c = fgetc(fp)) != EOF) // standard C I/O file reading loop
        putchar(c);
 
    if (ferror(fp))
        puts("I/O error when reading");
    else if (feof(fp))
    {
        puts("End of file is reached successfully");
        is_ok = EXIT_SUCCESS;
    }
 
    fclose(fp);
    remove(fname);
    return is_ok;
}

実行結果の例

Hello, world!
End of file is reached successfully

[編集] 参考文献

  • C23標準 (ISO/IEC 9899:2024)
  • 7.21.7.1 The fgetc function (p: TBD)
  • 7.21.7.5 The getc function (p: TBD)
  • C17標準 (ISO/IEC 9899:2018)
  • 7.21.7.1 The fgetc function (p: 240-241)
  • 7.21.7.5 The getc function (p: 242)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.21.7.1 The fgetc function (p: 330)
  • 7.21.7.5 The getc function (p: 332)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.19.7.1 The fgetc function (p: 296)
  • 7.19.7.5 The getc function (p: 297-298)
  • C89/C90標準 (ISO/IEC 9899:1990)
  • 4.9.7.1 The fgetc function
  • 4.9.7.5 The getc function

[編集] 関連項目

stdinから1文字読み込む
(関数) [編集]
(C11で削除)(C11)
stdinから文字列を読み込む
(関数) [編集]
ファイルストリームに1文字書き込む
(関数) [編集]
ファイルストリームに1文字を戻す
(関数) [編集]
C++ ドキュメント for fgetc, getc
English 日本語 中文(简体) 中文(繁體)