PrintFormat

プリセットフォーマットに従って、エキスパートログにメッセージを表示します。

PrintFormat

void  PrintFormat(
   string format_string,     // フォーマット文字列
   ...           // シンプルな型の値
   );
  • 引数
引数名初期値I/O詳細
format_string-INフォーマット文字列は簡単な記号で構成され、
format_stringの後の引数が続く場合、フォーマット仕様が含まれます。
...-INシンプルな型の値をカンマで区切って複数渡す事が出来ます。
引数の総数はformat_stringを含めて64を超える事は出来ません。
  • 戻り値

無し。

  • その他

ストラテジーテスターの最適化中では動作しません。

引数の値・順序・型は正確に修飾子のセットと正確に一致している必要があります。
一致していない場合、結果は不明です。

尚、PrintFormat()関数はprintf()と書いて使用する事が出来ます。

フォーマット文字列は(format_stringの)後に引数が続く場合、
この文字列はフォーマット仕様が含まれている必要があります。
フォーマット仕様は常にパーセント記号(%)で始まります。

左から右へフォーマット文字列が読み出されます。
最初のフォーマット仕様が満たされた場合(存在する場合)、
フォーマット文字列はプリセット仕様に従って最初のパラメータの値と変換して出力します。

第2のフォーマット仕様がある場合、次の引数の値と変換して出力して・・・
というようにフォーマット文字列終了まで処理されます。

フォーマット仕様の形式は以下の通りです。

%[flags][width][.precision][{h | l | ll | I32 | I64}]type

フォーマット仕様の各フィールドは、単純な記号または単純なフォーマットオプションを示す番号です。
最もシンプルな形式の仕様は、パーセント記号(%)と出力パラメータのタイプを定義しているシンボルです(例:%s)。

出力するフォーマット文字列にパーセント記号を表示させたい場合は、%%を使用します。

フラグ[flags]

フラグ詳細デフォルト動作
-左詰め表示する省略時は右詰め
+符号を付ける省略時は"-"符号のみ
00を詰める。
0フラグは整数形式(i,u,x,X,o,d)で指定します。
精度仕様が設定されている場合(例えば %0.4d)は0は無視されます。
省略時は0詰めしません
スペース(空白)整数の場合、出力値の前にスペースが挿入されます。スペース挿入されません
#o,x,Xフォーマットと一緒に使用する場合、
出力値の前に、0,0x,0Xが追加されます。
何も追加されません
#e,E,Aフォーマットと一緒に使用する場合、
値は常に小数点で表示されます。
ゼロ以外の小数部分がある場合のみ小数点表示されます
#g,Gフォーマットと一緒に使用する場合、
出力値の小数点の有無を定義し、小数点以下のゼロの省略防止します。
フォーマットc,d,i,u,sと一緒に使用した場合、#フラグは無視されます。
ゼロ以外の小数点がある場合のみ小数点表示されます。
小数点以下のゼロは省略されます。

幅[width]

正数(負数では無い)の小数は、出力シンボルの最小数を設定します。
出力シンボルの数値が指定された幅[width]よりも小さい場合、スぺースに対応する数値は位置に応じて左から追加されます。
-フラグ[flag]設定の場合は、右から追加されます。

0フラグ[flag]が存在する場合、ゼロの対応する数値は出力値の前に追加されます。
出力シンボルの数値が指定された幅[width]よりも大きい場合、出力値がカットされる事はありません。

アスタリスク(*)が幅[width]として指定されている場合は、
int型の値がパラメータリストに対応する位置にしなければなりません。
これは出力値の幅を指定する為に使用されます。

精度[precision]

正数(負数では無い)の出力精度(小数点以下の桁数)を設定します。
幅[width]仕様とは異なり、精度[precision]仕様は小数部分の一部をカットまたは丸める事が出来ます。

精度[precision]仕様はフォーマットタイプによって異なります。

フォーマット詳細デフォルト動作
a,A小数点以下の桁数を設定しますデフォルト精度:6
c,C使用できません-
d,i,u,o,x,X出力桁の最小数を設定します。
対応するパラメータ桁数が精度よりも小さい場合、0が出力値の左側に追加されます。
出力桁数が指定された精度よりも大きい場合は、出力値はカットされません。
デフォルト精度:1
e,E,f小数点以下の出力桁数を設定します。
最後の数字は四捨五入されます。
デフォルト精度:6
精度設定が0または小数部が存在しない場合、
小数点以下は表示されません。
g,G意味のある数字の最大数を設定します。6つの意味のある数字が出力されます
s,S文字列の出力シンボル数を設定します。
文字列の長さが精度を超えた場合、文字列はカットされます。
文字列全体が出力されます

接頭辞(データサイズ指定) [{h | l | ll | I32 | I64}]

接頭辞型の指定子
intld, i, o, x, X
uintlo, u, x, X
longlld, i, o, x, X
shorthd, i, o, x, X
ushortho, u, x, X
intl32d, i, o, x, X
uintl32o, u, x, X
longl64d, i, o, x, X
ulongl64o, u, x, X

種類[type]

type出力フォーマット
cintshort型の記号(Unicode)
Cintchar型の記号(ANSI)
dint符号付き10進数整数
iint符号付き10進数整数
oint符号無し8進数整数
uint符号無し10進数整数
xint符号なし16進整数。(小文字区別:abcdef)
Xint符号なし16進整数。(大文字区別:ABCEDF)
edouble実数の指数形式表示。
フォーマット例:[-]d.dddde[符号]ddd
・最初の[-]は符号。負数の場合は-符号をつける。
・小数点前のdは1桁の数字。
・小数点以下(eの前)のddddは1以上の10進数。
・eの後の[符号]は指数の符号。マイナスの場合は-をつける。省略時は+相当。
・小数点以下(eの後)のddd は指数の大きさを決定する数値
Edoubleeのフォーマットと同様。
但し、出力時のe記号が大文字のEになります。
fdouble実数表示。
フォーマット例:[-]dddd.dddd
・最初の[-]は符号。負数の場合は-符号をつける。省略時は正数。
・ddddは1以上の10進数。

小数点より前の表示桁数は、数値サイズによって異なります。
小数点以下の桁数は必要な精度に依存します。
gdoubleフォーマットf,eをコンパクトにした出力
GdoubleフォーマットF,Eをコンパクトにした出力
adouble実数をIEEE754形式で表示。
フォーマット:[-]0xh.hhhh p±dd
・h.hhhhは仮数部(小文字の16進数で表示)
・ddは指数、10進数で表示。
小数点以下の桁数は精度仕様によって決定されます。
Adoubleaのフォーマットと同様。
但し仮数部の16進数が大文字で表示され、指数部の記号が大文字のPで表示されます。
sstring文字列出力

Twitterでフォローしよう

おすすめの記事