Visual Studio 2017 を使用することをお勧めします

printf 関数の型フィールド文字

 

Visual Studio 2017 RC の最新のドキュメントの詳細については、Visual Studio 2017 RC ドキュメントをご参照ください。

書式指定では、type 文字 (変換指定子) により、対応する引数を文字、文字列、ポインター、整数、または浮動小数点数として解釈するかどうかを指定します。 type 文字だけが必須の書式指定フィールドであり、任意の省略可能なフィールドをその後に続けて指定します。

書式指定文字列に続く引数は、対応する type 文字と、省略可能な size プレフィックスに従って解釈されます。 文字型 char および wchar_t の変換は c または C を使用して指定し、1 バイト文字列とマルチバイト (ワイド文字) 文字列の変換は、書式設定に使用する関数に応じて s または S を使用して指定します。 c および s を使用して指定された文字引数と文字列引数は printf 系列の関数では char および char* として解釈され、wprintf 系列の関数では wchar_t および wchar_t* と解釈されます。 C および S を使用して指定された文字引数と文字列引数は printf 系列の関数では wchar_t および wchar_t* として解釈され、wprintf 系列の関数では char および char* と解釈されます。

shortintlonglong long などの整数型と、その unsigned のバリエーションは、dioux、および X を使用して指定します。 floatdouble、および long double などの浮動小数点型は、aAeEfg、および G を使用して指定します。 size フィールド長プレフィックスで変更しない場合、既定では、整数引数は int 型に強制変換され、浮動小数点引数は double に強制変換されます。 64 ビット システム上では、int は 32 ビット値です。したがって、ll または I64size プレフィックスを使用しない限り、64 ビット整数は出力用に書式設定される時に切り捨てられます。 p によって指定するポインター型では、プラットフォームの既定の長さが使用されます。

System_CAPS_ICON_note.jpg メモ

CS、および Z の型文字と、cs の型文字を printf 関数と wprintf 関数で使用した場合の動作は、Microsoft の拡張機能であり、ANSI 互換ではありません。 Visual C++ では型文字 F はサポートされていません。

printf 関数の型フィールド文字

型 (type) 文字引数[出力形式]
c文字printf 関数で使用する場合は 1 バイト文字を指定し、wprintf 関数で使用する場合はワイド文字を指定します。
C文字printf 関数で使用する場合はワイド文字を指定し、wprintf 関数で使用する場合は 1 バイト文字を指定します。
dInteger符号付き 10 進整数。
iInteger符号付き 10 進整数。
oInteger符号なし 8 進整数。
uInteger符号なし 10 進整数。
xInteger符号なし 16 進整数。"abcdef" を使用します。
XInteger符号なし 16 進整数。"ABCDEF" を使用します。
e浮動小数点数「[ - ]d.dddd e [符号]dd[d]」という形式を持つ符号付きの値。d は 1 桁の 10 進数字です。dddd は 1 桁以上の 10 進数字です。dd[d] は 2 桁または 3 桁の 10 進数字で、出力形式と指数部のサイズに応じて決まります。符号 は + または – です。
E浮動小数点数指数部の先頭が e ではなく E であることを除いて、e 形式と同じです。
f浮動小数点数[ – ]dddd.dddd という形式の符号付きの値です。dddd は、1 桁以上の 10 進数を表します。 整数部の桁数は、その数値の絶対値によって決定され、小数部の桁数は要求される精度によって決定されます。
g浮動小数点数符号付きの値を、書式 f または e のうち、与えられた値および精度を表現できる短い方の書式で書式設定します。 書式 e が使用されるのは、指数部の値が –4 より小さい場合か、precision 引数の値以上の場合のみです。 末尾の 0 は切り捨てられ、小数点は 1 桁以上の小数部が続く場合にのみ表示されます。
G浮動小数点数指数部の先頭が e ではなく E であること (該当する場合) を除いて、g 形式と同じです。
a浮動小数点数符号付き 16 進数の倍精度浮動小数点値。形式は [−]0xh.hhhh dd です。ここで、h.hhhh は仮数部の 16 進数の桁 (小文字の英字を使用)、dd は 1 桁以上の指数部です。 有効桁数は、小数点より後の桁数を指定します。
A浮動小数点数符号付き 16 進数の倍精度浮動小数点値。形式は [−]0Xh.hhhh dd です。ここで、h.hhhh は仮数部の 16 進数の桁 (大文字の英字を使用)、dd は 1 桁以上の指数部です。 有効桁数は、小数点より後の桁数を指定します。
n整数へのポインター現時点までにストリームまたはバッファーに正常に書き込まれた文字数。 この値は、引数として指定したアドレスにある整数に格納されます。 この記事で後述する「セキュリティに関するメモ」を参照してください。
p[ポインターの種類]引数を 16 進数字のアドレスとして表示します。
s文字列printf 関数で使用する場合は 1 バイト文字またはマルチバイト文字の文字列を指定し、wprintf 関数で使用する場合はワイド文字の文字列を指定します。 文字は、最初の null 文字が現れるか、precision 値に達するまで表示されます。
S文字列printf 関数で使用する場合はワイド文字の文字列を指定し、wprintf 関数で使用する場合は 1 バイト文字またはマルチバイト文字の文字列を指定します。 文字は、最初の null 文字が現れるか、precision 値に達するまで表示されます。
ZANSI_STRING または UNICODE_STRING 構造体引数として ANSI_STRING または UNICODE_STRING 構造体のアドレスを渡すと、構造体の Buffer フィールドがポイントしているバッファーに含まれる文字列が表示されます。 長さ修飾子のプレフィックス w を使用して指定する (たとえば %wZ) と、UNICODE_STRING 引数を指定できます。 構造体の Length フィールドには、文字列の長さ (バイト単位) を設定する必要があります。 構造体の MaximumLength フィールドには、バッファーの長さ (バイト単位) を設定する必要があります。

通常、型文字 Z は、dbgPrintkdPrint など、書式指定を使用するドライバー デバッグ関数でのみ使用します。

浮動小数点の変換指定子に対応する引数が無限、不定値、または NaN の場合に書式設定される出力を次の表に示します。

出力
+ 無限大1.#INF ランダムな桁
– 無限小–1.#INF ランダムな桁
不定 (quiet NaN と同じ) .#IND ランダムな桁
NAN .#NAN ランダムな桁
System_CAPS_ICON_note.jpg メモ

%Z に対応する引数の Buffer フィールド、あるいは %s または %S に対応する引数が null ポインターの場合は、"(null)" が表示されます。

System_CAPS_ICON_note.jpg メモ

すべての指数形式で、表示される指数部の桁数の既定値は 3 です。 _set_output_format 関数を使用すると、表示される桁数を 2 桁に設定できますが、指数部のサイズに応じて必要な場合は 3 桁に拡張されます。

System_CAPS_ICON_important.jpg 重要

書式 %n は本質的にセキュリティが万全でないため、既定で無効になっています。 書式指定文字列に %n がある場合は、「パラメーターの検証」で説明されているとおり、無効なパラメーター ハンドラーが呼び出されます。 %n のサポートを有効にするには、「_set_printf_count_output」を参照してください。

printf、_printf_l、wprintf、_wprintf_l
書式指定構文: printf 関数と wprintf 関数
フラグ ディレクティブ
printf 関数の文字幅指定
精度指定
サイズ指定
_set_output_format

表示: