printf、_printf_l、wprintf、_wprintf_lprintf, _printf_l, wprintf, _wprintf_l

標準出力ストリームに書式付きで出力します。Prints formatted output to the standard output stream. これらの関数のセキュリティを強化したバージョンを使用できます。「printf_s、_printf_s_l、wprintf_s、_wprintf_s_l」をご覧ください。More secure versions of these functions are available; see printf_s, _printf_s_l, wprintf_s, _wprintf_s_l.


int printf(
   const char *format [,
int _printf_l(
   const char *format,
   locale_t locale [,
int wprintf(
   const wchar_t *format [,
int _wprintf_l(
   const wchar_t *format,
   locale_t locale [,


書式指定文字列。Format control.

省略可能な引数。Optional arguments.

使用するロケール。The locale to use.

戻り値Return Value

出力した文字数を返します。エラーが発生した場合は負の値を返します。Returns the number of characters printed, or a negative value if an error occurs. 場合形式NULLで説明されているとおり、無効なパラメーター ハンドラーが呼び出されますパラメーターの検証です。If format is NULL, the invalid parameter handler is invoked, as described in Parameter Validation. 実行の継続、関数の戻り値-1 とセットが許可された場合errnoEINVALします。If execution is allowed to continue, the function returns -1 and sets errno to EINVAL. 場合EOF (0 xffff) が検出された引数関数は-1 を返します。If EOF (0xFFFF) is encountered in argument, the function returns -1.

についてerrno 、エラー コードを参照してくださいと_doserrno、errno、_sys_errlist、_sys_nerrします。For information on errno and error codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.


Printf関数は、書式化して、一連の文字と、標準出力ストリームに値を出力stdoutします。The printf function formats and prints a series of characters and values to the standard output stream, stdout. 引数以下の場合、形式、文字列、形式文字列は、引数の出力形式の仕様を含める必要があります。If arguments follow the format string, the format string must contain specifications that determine the output format for the arguments. printffprintf動作は同じことを除いてprintfに出力するstdout型の出力先ではなくファイル.printf and fprintf behave identically except that printf writes output to stdout rather than to a destination of type FILE.

wprintfのワイド文字バージョンは、 printf;形式はワイド文字列です。wprintf is a wide-character version of printf; format is a wide-character string. wprintfprintfストリームが ANSI モードで開かれている場合の動作は同じです。wprintf and printf behave identically if the stream is opened in ANSI mode. printf UNICODE ストリームへ現在出力をサポートしません。printf does not currently support output into a UNICODE stream.

これらの関数のバージョン、 _l現在のスレッド ロケールの代わりに渡されたロケール パラメーターを使用する点を除いて、サフィックスは同じです。The versions of these functions with the _l suffix are identical except that they use the locale parameter passed in instead of the current thread locale.

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

TCHAR.H のルーチンTCHAR.H routine _UNICODE および _MBCS が未定義の場合_UNICODE & _MBCS not defined _MBCS が定義されている場合_MBCS defined _Unicode が定義されている場合_unicode defined
_tprintf_tprintf printfprintf printfprintf wprintfwprintf

形式引数は、通常の文字、エスケープ シーケンスで構成され、(後に引数場合形式) 書式指定。The format argument consists of ordinary characters, escape sequences, and (if arguments follow format) format specifications. 通常の文字とエスケープ シーケンスにコピーされますstdoutの外観の順序で。The ordinary characters and escape sequences are copied to stdout in order of their appearance. たとえば、次の関数を呼び出します。For example, the line:

printf("Line one\n\t\tLine two\n");

この例では、次のように出力されます。produces the output:

Line one
        Line two

書式指定常にパーセント記号で始まります (%) 左右に読み取られます。Format specifications always begin with a percent sign (%) and are read left to right. ときにprintf検出すると、最初の書式指定 (指定されている場合) 後の最初の引数の値に変換形式して出力します。When printf encounters the first format specification (if any), it converts the value of the first argument after format and outputs it accordingly. 2 番目の書式指定を見つけると、2 番目の引数を変換して出力します。The second format specification causes the second argument to be converted and output, and so on. 書式指定よりも引数の数が多い場合、余分な引数は無視されます。If there are more arguments than there are format specifications, the extra arguments are ignored. 書式指定より引数が少ないと、結果は予測できません。The results are undefined if there are not enough arguments for all the format specifications.


format にユーザー定義の文字列を指定しないでください。Ensure that format is not a user-defined string.

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

Tchar.h のルーチンTchar.h routine _UNICODE および _MBCS が未定義の場合_UNICODE and _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_tprintf_tprintf printfprintf printfprintf wprintfwprintf
_tprintf_l_tprintf_l _printf_l_printf_l _printf_l_printf_l _wprintf_l_wprintf_l


ルーチンによって返される値Routine 必須ヘッダーRequired header
printf_printf_lprintf, _printf_l <stdio.h><stdio.h>
wprintf_wprintf_lwprintf, _wprintf_l <stdio.h> または <wchar.h><stdio.h> or <wchar.h>

ユニバーサル Windows プラットフォーム (UWP) アプリでは、コンソールがサポートされていません。The console is not supported in Universal Windows Platform (UWP) apps. コンソールに関連付けられている標準ストリームのハンドルstdinstdout、およびstderr、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_printf.c
// This program uses the printf and wprintf functions
// to produce formatted output.

#include <stdio.h>

int main( void )
   char     ch = 'h',
            *string = "computer";
   wchar_t  wch = L'w',
            *wstring = L"Unicode";
   int      count = -9234;
   double   fp = 251.7366;

   // Display integers
   printf( "Integer formats:\n"
           "   Decimal: %d  Justified: %.6d  "
           "Unsigned: %u\n",
           count, count, count, count );

   // Display decimals
   printf( "Decimal %d as:\n   Hex: %Xh  "
           "C hex: 0x%x  Octal: %o\n",
            count, count, count, count );

   // Display in different radixes
   printf( "Digits 10 equal:\n   Hex: %i  "
           "Octal: %i  Decimal: %i\n",
            0x10, 010, 10 );

   // Display characters
   printf("Characters in field (1):\n"
          ch, ch, wch, wch);
   wprintf(L"Characters in field (2):\n"
           ch, ch, wch, wch);

   // Display strings
   printf("Strings in field (1):\n%25s\n"
          "%25.4hs\n   %S%25.3ls\n",
          string, string, wstring, wstring);
   wprintf(L"Strings in field (2):\n%25S\n"
           L"%25.4hs\n   %s%25.3ls\n",
           string, string, wstring, wstring);

   // Display real numbers
   printf("Real numbers:\n   %f %.2f %e %E\n",
          fp, fp, fp, fp );

   // Display pointer
   printf( "\nAddress as:   %p\n", &count);

出力例Sample Output

Integer formats:
   Decimal: -9234  Justified: -009234  Unsigned: 4294958062
Decimal -9234 as:
   Hex: FFFFDBEEh  C hex: 0xffffdbee  Octal: 37777755756
Digits 10 equal:
   Hex: 16  Octal: 8  Decimal: 10
Characters in field (1):
         h    h    w    w
Characters in field (2):
         h    h    w    w
Strings in field (1):
   Unicode                      Uni
Strings in field (2):
   Unicode                      Uni
Real numbers:
   251.736600 251.74 2.517366e+002 2.517366E+002

Address as:   0012FF3C

関連項目See also

浮動小数点サポートFloating-Point Support
ストリーム入出力Stream I/O
fopen、_wfopenfopen, _wfopen
_fprintf_p、_fprintf_p_l、_fwprintf_p、_fwprintf_p_l_fprintf_p, _fprintf_p_l, _fwprintf_p, _fwprintf_p_l
scanf、_scanf_l、wscanf、_wscanf_lscanf, _scanf_l, wscanf, _wscanf_l
sprintf、_sprintf_l、swprintf、_swprintf_l、__swprintf_lsprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
vprintf 系関数vprintf Functions