2

这个 sprintf_s 命令中的格式控制说明符“%S\%016I64X%S”是什么意思?

据我所知,它定义了一个字符串,它将数字转换为十六进制格式的无符号 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"X十六进制输出的格式说明符。0根据需要指示零填充。 16指示最小输出长度。 I64是一个特定于 windows 的修饰符,表示预期的整数是 windows 特定的类型unsigned __int64更多的

您在“无符号 64 位整数”的正确轨道上。

于 2013-08-25T14:18:01.727 回答