2

この sprintf_s コマンドの書式制御指定子 "%S\%016I64X%S" の意味は何ですか?

私の知る限り、数値を16進数形式の符号なし64ビット整数に変換する文字列を定義しています。私が正しいかどうか知りたいですか?私を助けてください..

char lFileName[MAX_PATH];
sprintf_s( lFileName, MAX_PATH, "%S\\%016I64X%S", mSavePath.GetBuffer(),aBuffer->GetTimestamp(), lExt );
4

1 に答える 1

3

まず、Visual C++ の使用方法のように見えます。

int sprintf_s(char *buffer, size_t sizeOfBuffer, const char *format, ...);

フォーマットは複数のディレクティブで構成されています: "%S", "\\", "%016I64X", "%S".

"%S" 「printf 関数で使用すると、ワイド文字列を指定します。...」

"\\"は単に\です。

"%016I64X"16 進出力のXフォーマット指定子です。0必要に応じてゼロ充填を示します。 16最小出力長を示します。 I64予想される整数が Windows 固有の型であることを示す Windows 固有の修飾子unsigned __int64です。 もっと

「符号なし64ビット整数」で正しい軌道に乗っています。

于 2013-08-25T14:18:01.727 に答える