此 sprintf_s 命令中的格式控制说明符“%S\%016I64X%S”是什么意思?
据我所知,它定义了一个字符串,它将数字转换为十六进制格式的无符号 64 位整数。我想知道我是否正确?请帮帮我..
char lFileName[MAX_PATH];
sprintf_s( lFileName, MAX_PATH, "%S\\%016I64X%S", mSavePath.GetBuffer(),aBuffer->GetTimestamp(), lExt );
最佳答案
首先,它看起来像一个 Visual C++ 用法
int sprintf_s(char *buffer, size_t sizeOfBuffer, const char *format, ...);
该格式由多个指令组成:
"%S"
, "\\"
, "%016I64X"
, "%S"
."%S"
"当与 printf 函数一起使用时,指定一个宽字符串;..."more"\\"
只是一个 \
."%016I64X"
是 X
十六进制输出的格式说明符。 0
根据需要指示补零。 16
表示最小输出长度。 I64
是一个特定于 Windows 的修饰符,指示预期的整数是特定于 Windows 的类型 unsigned __int64
. more您在正确的轨道上使用“无符号 64 位整数”。
关于string-formatting - sprintf_s中的格式控制说明符%016I64X是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18123066/