标签: length-modifiers

为什么scanf()需要"%lf"用于双打,当printf()只用"%f"时可以吗?

为什么在阅读时scanf()需要l" %lf" double,何时printf()可以使用" %f",无论其参数是a double还是a float

示例代码:

double d;
scanf("%lf", &d);
printf("%f", d);
Run Code Online (Sandbox Code Playgroud)

c scanf length-modifiers

174
推荐指数
4
解决办法
29万
查看次数

如何使用 printf 将格式说明符与字符分开

表达这个问题的另一种方式可能是“如何在 printf 中结束格式说明符”

如果我想100us使用以下代码以这种格式打印微秒......

long microseconds = 100L;
printf("%lus", microseconds);
Run Code Online (Sandbox Code Playgroud)

只打印,100s因为 theu与 the 组合%l,并且它将格式说明符解释为 anunsigned long而不是 along

c printf format-specifiers conversion-specifier length-modifiers

4
推荐指数
1
解决办法
236
查看次数

%PRId和%d格式字符有什么区别?

请考虑以下代码:

#include <stdio.h>
#include <inttypes.h>

void main(void)
{
    int32_t a = 44;

    fprintf(stdout, "%d\n", a);
    fprintf(stdout, "%"PRId32"\n", a);
}
Run Code Online (Sandbox Code Playgroud)

什么时候使用%d更好,"%"PRId32什么时候使用会更好?这两种格式字符有何不同?这是否与int32_t您的硬件/机器上的typedeffed有关?

c printf conversion-specifier length-modifiers

3
推荐指数
1
解决办法
108
查看次数