转换说明符 %ju

标签 c printf scanf

在接下来的页面中,我发现了这样的代码

CERT INT15-C Use intmax_t or uintmax_t for formatted IO on programmer-defined integer types

uintmax_t temp;

if(scanf("%ju", &temp) != 1) {
   ...

我不熟悉“%ju”说明符。而且我在网上也没有成功找到“%ju”的解释。

这是由某些特定的编译器环境定义的,还是通常使用的编译器环境定义的?

最佳答案

%ju 只是带有 j 长度修饰符的 %u(无符号)格式,后者在 C99 标准中定义为:

j — Specifies that a following d, i, o, u, x, X, or n conversion specifier applies to an argument with type pointer to intmax_t or uintmax_t.

关于转换说明符 %ju,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20364486/

相关文章:

c - 在c中的无符号短整型中分配零

php - javascript 中的 sprintf url 格式

c - 使用 scanf 解析 c 中的方程串

c - 将 printf 与 %s 和 char* 一起使用时出现问题

c - 从用户那里获取字符串的更好方法

c++ - 从 float 到 int 的转换在所有平台和处理器架构中是否一致?

c++ - 我应该更改函数参数的值吗?

c - 解释一下程序中fprintf()的奇怪行为,在文件中打印一些不寻常的字符

c - scanf 如何知道何时结束 for 循环?

c - 从文件中读取整数并忽略 C 中的空格