C言語入門講座。関数、サンプル集を参考にして、 C言語をマスターしよう。初心者から上級者まで。

ストリームから1文字入力する

2012.08.10

fgetc関数は、ファイルポインタで示されるストリームから1文字入力します。fgetc関数とgetc関数は機能及び、形式とも同じですが、getc関数はマクロとして実装されている可能性があります。

#include <stdio.h>
int fgetc(FILE *stream);

*streamはfopen関数で取得した、ファイルポインタを指定します。

戻り値として、入力した1文字をint型として返します。ファイルの終わりや、エラーの場合はEOFの値を返します。

プログラム 例

#include <stdio.h>

int main(int argc, char **argv)
{
  FILE    *fp;
  int     in_data;
  int     return_code = 0;

  if (argc == 2) {
    if ((fp = fopen(*(argv+1), 'r')) != NULL) {
      while((in_data = fgetc(fp)) != EOF) {
        putchar(in_data);
      }

      fclose(fp);
    }
    else {
      printf('ファイルのオープンに失敗しました\n');
      return_code = 1;
    }
  }
  else {
    printf('実行時引数の数が不当です\n');
    return_code = 2;
  }

  return return_code;
}

例の実行結果

$ cat temp.txt
Hello World!!.
$
$ ./fgetc.exe
Hello World!!.
$

関連記事