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

ファイルに1文字出力する

2012.08.10

fputc関数は、ファイルポインタで示されるファイルに1文字出力します。fputc関数とputc関数は機能及び、形式とも同じですが、putc関数はマクロとして実装されている可能性があります。

#include <stdio.h>
int fputc(int c, FILE *stream);

cは出力する1文字を指定します。型名はint型ですので注意してください。
*streamはfopen関数で取得した、ファイルポインタを指定します。

戻り値として、出力した1文字をint型として返します。エラーの場合はEOFの値を返します。

プログラム 例

#include <stdio.h>

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

  if (argc == 3) {
    if ((fp_in = fopen(*(argv + 1), 'r')) != NULL) {
      if ((fp_out = fopen(*(argv + 2), 'w')) != NULL) {
        while((in_data = fgetc(fp_in)) != EOF) {
          fputc(in_data, fp_out);
        }

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

  return return_code;
}

例の実行結果

$ cat temp.txt
#include <stdio.h>

int main()
{
  printf('Hello World!!.\n');

  return 0;
}
$
$ ./fputc.exe temp.txt temp1.txt
$
$ cat temp1.txt
#include <stdio.h>

int main()
{
  printf('Hello World!!.\n');

  return 0;
}
$

関連記事