HIR-NET Home 運営者 オンラインソフト 運営者著書 CG HIR-NETリンク集
Tweet このエントリーをはてなブックマークに追加
C言語辞典

fputcエフ・プット・シー関数かんすう
fputc function

語源  fileファイオ putプット characterキャラクター(ファイル文字出力)
分類  C/C++標準ライブラリ/関数/入出力関数/出力関数/文字出力関数
名称  ファイル文字出力関数(file character output function)
対義  fgetc関数
同等  fputwc関数
類似  putc関数
関連  fopen関数, getc関数
解説  fputc関数は、ファイルに文字を書き出す関数です。出力ストリーム*stream のファイル位置指示子の位置に、出力文字c を unsigned char に変換した上で書き出します。ファイル位置指示子はその分進められます。ファイルが位置付け要求を実現できないか、ストリームが追加モードでオープンされている場合は出力ストリームに文字が付加されます。

関数原型宣言ヘッダ  <stdio.h>
関数原型宣言例
            出力文字
        (0~UCHAR_MAX)  出力ストリーム
             ↓         ↓
int fputc(int c,FILE *stream);
↓
0~UCHAR_MAX:出力文字
EOF         :失敗
関数返却値
①書かれた文字c を返す。値としては 0~UCHAR_MAX(一般に 0~255)です。
②書出エラーが発生した場合(ferror関数で識別可能)はファイル・エラー指示子をストリームに設定し EOF(一般に -1)を返します。


関数原型宣言ヘッダ  <stdio.h>
関数原型宣言例
            出力文字
        (0~UCHAR_MAX)  出力ストリーム
             ↓         ↓
int fputc(int c,FILE *stream);
↓
0~UCHAR_MAX:出力文字
EOF         :失敗
関数返却値
①書かれた文字c を返す。値としては 0~UCHAR_MAX(一般に 0~255)です。
②書出エラーが発生した場合(ferror関数で識別可能)は、ファイル・エラー指示子をストリームに設定し EOF(一般に -1)を返します。


 プログラム例   

ファイルに文字を出力
// fputc1.c

#include <limits.h> // UCHAR_MAX
#include <stdio.h> // FILE,fputc
#include <stdlib.h> // EXIT_SUCCESS


int main(void)
{
  int i;
  FILE *sput=fopen("fputc.tes","wb");
             // バイナリ・ファイル書出モード
  for(i=0;i<=UCHAR_MAX;i++)
    printf("%3d ",fputc(i,sput));
  printf("\n");

  return EXIT_SUCCESS;
} // main
実行結果  ファイル "fputc.tes" は書込オープン可能なファイルとします。fputc.tes の中身はバイナリのデータで 0~255 の値が入っています。以下は返却値の値を printf関数で表示したものです。
  0   1   2   3   4   5   6   7   8   9  10
 11  12  13  14  15  16  17  18  19  20  21
 22  23  24  25  26  27  28  29  30  31  32
~(中略)~
231 232 233 234 235 236 237 238 239 240 241
242 243 244 245 246 247 248 249 250 251 252
253 254 255
ファイルを1文字ずつコピーするプログラムです。ファイルの扱いの基本となるプログラムです。
// fputc2.c

#include <stdio.h> // FILE,EOF,fgetc,fopen,fputc
#include <stdlib.h> // EXIT_SUCCESS


int main(int argc,char *argv[])
{
  FILE *sget=fopen(argv[1],"r"); // 入力
  FILE *sput=fopen(argv[2],"w"); // 出力

  while(1)
  {
    int c=fgetc(sget); // ファイル文字入力
    if(c==EOF)break;
    fputc(c,sput);  // ファイル文字出力
  } // while

  return EXIT_SUCCESS;
} // main
実行結果
>>fputc2 a b⏎ …… ファイル a を b にコピー

>>■





HIR-NET Home 運営者 オンラインソフト 運営者著書 CG HIR-NETリンク集
◆リンクは、ご自由にお張りください。

Copyright © 1988-2017 Hirabayashi Masahide  プライバシーポリシー