_vcprintf_p、_vcprintf_p_l、_vcwprintf_p、_vcwprintf_p_l
書き込みファイル形式の文字列で引数リストへのポインターを、機能の位置指定パラメーターによる使用してコンソールに出力の書式設定。
重要 |
---|
この API は Windows ランタイムで実行されるアプリケーションで使用することはできません。詳細については、でサポート /ZW CRT 関数" "を参照してください。 |
int _vcprintf_p(
const char* format,
va_list argptr
);
int _vcprintf_p_l(
const char* format,
locale_t locale,
va_list argptr
);
int _vcwprintf_p(
const wchar_t* format,
va_list argptr
);
int _vcwprintf_p_l(
const wchar_t* format,
locale_t locale,
va_list argptr
);
パラメーター
format
ファイル形式仕様。argptr
引数リストへのポインター。locale
使用するロケール。
詳細については、「書式指定構文: printf 関数と wprintf 関数」を参照してください。
戻り値
出力エラーが発生した場合は、書き込まれた文字数または負の値。format が null ポインターの場合は、「パラメーターの検証」に説明されているように、無効なパラメーター ハンドラーが呼び出されます。実行の継続が許可された場合、errno が EINVAL に設定され、関数から -1 が返されます。
解説
これらの関数は、引数リストへのポインターを使用し、コンソールに指定されたデータを書式設定と書き込みに _putch 関数を使用します。(_putchの代わりに_vcwprintf_p を使用 _putwch。_vcwprintf_p 関数は、_vcprintf_p 関数のワイド文字バージョンです。これは、引数として文字列を設定します。)
_l のサフィックスがである同じですが、現在のロケールの代わりに渡されたロケール パラメーターを使用するこれらの関数の各バージョンは。
各 argument は formatの対応するファイル形式仕様に従って (存在する場合) に変換され、出力されます。ファイル形式仕様は、引数がファイル形式の文字列で使用する順序を指定できるように、位置指定パラメーターをサポートしています。詳細については、「printf_p の位置指定パラメーター」を参照してください。
これらの関数は、復帰行にフィード (CR-LF) の組み合わせに出力時にライン フィード文字を変換しません。
セキュリティに関するメモ |
---|
format にユーザー定義の文字列を指定しないでください。詳細については、「Avoiding Buffer Overruns」を参照してください。 |
これらの関数は、入力ポインターと書式指定文字列を検証します。format または argument が NULL の場合、あるいは書式指定文字列に無効な書式指定文字が含まれている場合、これらの関数は「パラメーターの検証」に説明されているように、無効なパラメーター ハンドラーを呼び出します。実行の継続が許可された場合、これらの関数は -1 を返し、errno を EINVAL に設定します。
汎用テキスト ルーチンのマップ
Tchar.h のルーチン |
_UNICODE および _MBCS が未定義の場合 |
_MBCS が定義されている場合 |
_UNICODE が定義されている場合 |
---|---|---|---|
_vtcprintf_p |
_vcprintf_p |
_vcprintf_p |
_vcwprintf_p |
_vtcprintf_p_l |
_vcprintf_p_l |
_vcprintf_p_l |
_vcwprintf_p_l |
必要条件
ルーチン |
必須ヘッダー |
---|---|
_vcprintf_p, _vcprintf_p_l |
<conio.h> および <stdarg.h> |
_vcwprintf_p, _vcwprintf_p_l |
<conio.h> および <stdarg.h> |
互換性の詳細については、互換性を参照してください。
使用例
// crt_vcprintf_p.c
// compile with: /c
#include <conio.h>
#include <stdarg.h>
// An error formatting function that's used to print to the console.
int eprintf(const char* format, ...)
{
va_list args;
va_start(args, format);
return _vcprintf_p(format, args);
}
int main()
{
int n = eprintf("parameter 2 = %2$d; parameter 1 = %1$s\r\n",
"one", 222);
_cprintf_s("%d characters printed\r\n");
}