fputc() — 文字を書き込む

形式

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

言語レベル

ANSI

スレッド・セーフ

はい

説明

fputc() 関数は、 cunsigned char に変換してから、 c を現在位置の出力 stream に書き込み、ファイル位置を適切に進めます。 ストリームが追加モードの 1 つでオープンされている場合は、文字はストリームの最後に付け加えられます。

fputc() 関数は、 putc()と同じです。常に関数呼び出しとして定義されます。マクロに置き換えられることはありません。

戻り値

fputc() 関数は、書き込まれた文字を戻します。 EOF の戻り値はエラーを示します。

errno の値は、次のいずれかに設定されます。
意味
ECONVERT
変換エラーが発生しました。
ENOTWRITE
ファイルは書き込み操作用にオープンされません。
EPUTANDGET
読み取り操作の後に、許可されていない書き込み操作が発生しました。
ERECIO
ファイルはレコードの入出力用にオープンしています。
ESTDERR
stderr をオープンできません。
ESTDOUT
stdout をオープンできません。
EIOERROR
回復不能入出力エラーが起こりました。
EIORECERR
回復可能入出力エラーが起こりました。

fputc() 関数は、 type=recordでオープンされたファイルではサポートされていません。

次の例は buffer の内容を myfile と呼ばれるファイルに書き込みます。
注: 出力は for ステートメントの 2 番目の式の中で副次作用として発生するため、ステートメント本体は NULL になります。
#include <stdio.h>
 
#define NUM_ALPHA  26
 
int main(void)
{
  FILE * stream;
  int i;
  int ch;
 
  char buffer[NUM_ALPHA + 1] = "abcdefghijklmnopqrstuvwxyz";
 
  if (( stream = fopen("mylib/myfile", "w"))!= NULL )
  {
    /* Put buffer into file */
    for ( i = 0; ( i < sizeof(buffer) ) &&
           ((ch = fputc( buffer[i], stream)) != EOF ); ++i );
    fclose( stream );
  }
  else
    perror( "Error opening myfile" );
 
}

関連情報