string-formatting - sprintf_s中的格式控制说明符%016I64X是什么意思

标签 string-formatting printf format-specifiers

此 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/

相关文章:

.net - 使用货币字符串格式时防止四舍五入

c - 使用 fscanf() 时不理解 C 格式说明符

wpf - 绑定(bind)字符串格式数字逗号且无小数位

java - 什么时候以及为什么在打印日志时使用字符串格式更好?

python - 对字符串 : are there any caveats? 使用 locals() 和 format() 方法

C 读取过去的换行符

c - 为什么如果我输入\n或不输入,输出的顺序会不同

c 函数 fprintf 变量文件指针

c - printf() 中的 e 格式和精度修饰符

java - 如何在java中使用说明符而不是循环重复打印字符?