use*_*852 1 c parameters arguments
我正在研究C编程书中的一些问题,并遇到了一个有趣的问题:
对或错?
该声明:
scanf("%d:%f:%1f\n", &a, &b, &c);
Run Code Online (Sandbox Code Playgroud)
包含四个参数"%d:%f:%1f\n",&a,&b和&c.
给出的答案是真的.为什么会这样?我这里没有看到4个参数/参数.
对或错?
该声明:
printf("%+2d",123);
Run Code Online (Sandbox Code Playgroud)
显示 +12
答案是错误的.为什么会这样?
第一;
scanf("%d:%f:%1f\n", &a, &b, &c);
Run Code Online (Sandbox Code Playgroud)
包含4个参数;
1: "%d:%f:%1f\n"
2: &a
3: &b
4: &c
Run Code Online (Sandbox Code Playgroud)
第二;
printf("%+2d",123);
Run Code Online (Sandbox Code Playgroud)
2表示最小字段宽度,但123宽于2个字符并将完整打印.该+部队的标志,所以结果+123.
问题#1
参数是用逗号分隔的:).
scanf("%d:%f:%1f\n", &a, &b, &c);
// 1 2 3 4
Run Code Online (Sandbox Code Playgroud)
问题2
该行打印+123,试一试.
printf("%+2d",123);
Run Code Online (Sandbox Code Playgroud)
来自http://www.cplusplus.com/reference/clibrary/cstdio/printf/:
概要: %[flags][width][.precision][length]specifier
+):强制在结果前面加上加号或减号(+或 - ),即使是正数.默认情况下,只有负数前面带有 - 符号.2):要打印的最小字符数.如果要打印的值小于此数字,则结果将填充空格.即使结果较大,也不会截断该值.d):有符号十进制整数