putc() - putchar() — 文字の書き込み

形式

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

言語レベル

ANSI

スレッド・セーフ

いいえ

#undef putc または #undef putchar は、putc または putchar 関数のマクロ・バージョンの代わりに、これらの関数の呼び出しを許可します。 関数はスレッド・セーフです。

説明

putc() 関数は、 cunsigned char に変換してから、 c を出力 stream の現在位置に書き込みます。 putchar()putc(c, stdout)と同等です。

putc() 関数はマクロとして定義できるため、引数を複数回評価できます。

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

戻り値

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

errno の値は、次のいずれかに設定されます。
意味
ECONVERT
変換エラーが発生しました。
EPUTANDGET
読み取り操作の後、正しくない書き込み操作が発生しました。
EIOERROR
回復不能入出力エラーが起こりました。
EIORECERR
回復可能入出力エラーが起こりました。

この例では、バッファーの内容をデータ・ストリームに書き込みます。 この例では、for 文の本体は NULL ですが、これは、この例ではテスト式内で書き込み操作を実行するためです。
#include <stdio.h>
#include <string.h>
 
#define  LENGTH 80
 
int main(void)
{
   FILE *stream = stdout;
   int i, ch;
   char buffer[LENGTH + 1] = "Hello world";
 
   /* This could be replaced by using the fwrite function */
   for ( i = 0;
        (i < strlen(buffer)) && ((ch = putc(buffer[i], stream)) !=     EOF);
         ++i);
}
 
/********************  Expected output:  **************************
 
Hello world
*/

関連情報