【发布时间】:2011-08-09 08:05:02
【问题描述】:
如果我有一个整数变量,我可以使用sscanf,如下所示,使用格式说明符 %d。
sscanf (line, "Value of integer: %d\n", &my_integer);
在哪里可以找到uint8_t、uint16_t、uint32_t 和 uint64_t 的格式说明符?
uint64_t 可能有 %lu。
【问题讨论】:
-
%lu不是unsigned long吗?这通常是 32 位。 -
改用iostreams没问题,适应类型
-
@MSalters:注意对于 64 位目标,Windows 64
unsigned long是 32 位,而所有 UNIX 和 Linux 64 位unsigned long都是 64 位。 -
@Didier Trosset
unsigned long在所有 64 位 UNIX 变体上都不是 64 位。它是使用 gcc 在 64 位 solaris 上的 32 位。我曾经有过痛苦的经历,得知它在 linux 上是 64 位的。 -
@camelccc 从那里的解释来看:unix.org/version2/whatsnew/lp64_wp.html,64 位 solaris 应该是 UNIX 是 LP64 的一个例外。