putc() - putchar() — 文字の書き込み
形式
#include <stdio.h>
int putc(int c, FILE *stream);
int putchar(int c);言語レベル
ANSI
スレッド・セーフ
いいえ
#undef putc または #undef putchar は、putc または putchar 関数のマクロ・バージョンの代わりに、これらの関数の呼び出しを許可します。 関数はスレッド・セーフです。
説明
putc() 関数は、 c を unsigned 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
*/