fputc、fputwcfputc, fputwc

ストリームに文字を書き込みます。Writes a character to a stream.


int fputc(
   int c,
   FILE *stream
wint_t fputwc(
   wchar_t c,
   FILE *stream


書き込む文字。Character to be written.

FILE 構造体へのポインター。Pointer to FILE structure.

戻り値Return Value

これらの各関数は、書き込まれた文字を返します。Each of these functions returns the character written. Fputcの場合、 EOFの戻り値はエラーを示します。For fputc, a return value of EOF indicates an error. Fputwcの場合、 WEOFの戻り値はエラーを示します。For fputwc, a return value of WEOF indicates an error. StreamNULLの場合、「パラメーターの検証」で説明されているように、これらの関数は無効なパラメーターハンドラーを呼び出します。If stream is NULL, these functions invoke the invalid parameter handler, as described in Parameter Validation. 実行の継続が許可された場合、 EOFを返し、 errnoEINVALに設定します。If execution is allowed to continue, they return EOF and set errno to EINVAL.

エラー コードの詳細については、「_doserrno、errno、_sys_errlist、_sys_nerr」をご覧ください。See _doserrno, errno, _sys_errlist, and _sys_nerr for more information on these, and other, error codes.


これらの各関数は、関連付けられたファイルの位置インジケーター (定義されている場合) によって示される位置にあるファイルに1文字cを書き込み、必要に応じてインジケーターを進めます。Each of these functions writes the single character c to a file at the position indicated by the associated file position indicator (if defined) and advances the indicator as appropriate. Fputcfputwcの場合、ファイルはstreamに関連付けられています。In the case of fputc and fputwc, the file is associated with stream. ファイルが配置要求をサポートできない場合、または追加モードでファイルが開かれた場合、文字はストリームの末尾に追加されます。If the file cannot support positioning requests or was opened in append mode, the character is appended to the end of the stream.

ストリームが ANSI モードで開かれている場合、2 つの関数の動作は同じになります。The two functions behave identically if the stream is opened in ANSI mode. fputcは、現在 UNICODE ストリームへの出力をサポートしていません。fputc does not currently support output into a UNICODE stream.

_nolock サフィックスが付いているバージョンは同じものですが、他のスレッドによる干渉から保護されない点が異なります。The versions with the _nolock suffix are identical except that they are not protected from interference by other threads. 詳細については、「_fputc_nolock、_fputwc_nolock」を参照してください。For more information, see_fputc_nolock, _fputwc_nolock.

ルーチン固有の解説は、次のとおりです。Routine-specific remarks follow.

ルーチンRoutine RemarksRemarks
fputcfputc Putcと同じですが、関数およびマクロとしてではなく、関数としてのみ実装されます。Equivalent to putc, but implemented only as a function, rather than as a function and a macro.
fputwcfputwc Fputcのワイド文字バージョン。Wide-character version of fputc. ストリームがテキストモードとバイナリモードのどちらで開かれているかに従って、 cをマルチバイト文字またはワイド文字として書き込みます。Writes c as a multibyte character or a wide character according to whether stream is opened in text mode or binary mode.

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

TCHAR.H のルーチンTCHAR.H routine _UNICODE および _MBCS が未定義の場合_UNICODE & _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_fputtc_fputtc fputcfputc fputcfputc fputwcfputwc


関数Function 必須ヘッダーRequired header
fputcfputc <stdio.h><stdio.h>
fputwcfputwc <stdio.h> または <wchar.h><stdio.h> or <wchar.h>

コンソールは、ユニバーサル Windows プラットフォーム (UWP) アプリではサポートされていません。The console is not supported in Universal Windows Platform (UWP) apps. コンソール (stdinstdoutstderr) に関連付けられている標準ストリームハンドルは、C ランタイム関数が UWP アプリで使用できるようになる前にリダイレクトする必要があります。The standard stream handles that are associated with the console—stdin, stdout, and stderr—must be redirected before C run-time functions can use them in UWP apps. 互換性の詳細については、「 互換性」を参照してください。For additional compatibility information, see Compatibility.


// crt_fputc.c
// This program uses fputc
// to send a character array to stdout.

#include <stdio.h>

int main( void )
   char strptr1[] = "This is a test of fputc!!\n";
   char *p;

   // Print line to stream using fputc.
   p = strptr1;
   while( (*p != '\0') && fputc( *(p++), stdout ) != EOF ) ;

This is a test of fputc!!

関連項目See also

ストリーム入出力Stream I/O
fgetc、fgetwcfgetc, fgetwc
putc、putwcputc, putwc