如果我有一个整数变量,我可以通过使用格式说明符 %d 来使用 sscanf
,如下所示。
sscanf (line, "Value of integer: %d\n", &my_integer);
在哪里可以找到 uint8_t
、uint16_t
、uint32_t
和 uint64_t
的格式说明符?
uint64_t 可能有 %lu。
最佳答案
它们在 <inttypes.h>
中声明作为宏:SCNd8、SCNd16、SCNd32 和 SCNd64。
示例(对于 int32_t):
sscanf (line, "Value of integer: %" SCNd32 "\n", &my_integer);
它们的格式是 PRI (for printf)/SCN (for scan) 然后 o, u, x, X d, i 对应的说明符然后什么都没有,LEAST, FAST, MAX 然后是大小(显然没有大小最大限度)。其他一些示例:PRIo8、PRIuMAX、SCNoFAST16。
编辑:顺便说一句 related question问为什么使用这种方法。您可能会发现答案很有趣。
关于c++ - uint8_t、uint16_t、...的格式说明符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6993132/