我正在研究一本C编程书中的一些问题,并遇到了一个有趣的问题:
"%d:%f:%1f\n"、&a、&b和&c。
给出的答案是true。为何会这样呢?这里没有4个参数/参数。+12
答案是false。为何会这样呢?发布于 2012-08-26 13:26:37
第一;
scanf("%d:%f:%1f\n", &a, &b, &c);包含4个参数;
1: "%d:%f:%1f\n"
2: &a
3: &b
4: &c二是;
printf("%+2d",123);2表示最小字段宽度,但123大于2个字符,并将全部打印。+强制一个符号,所以结果是+123。
发布于 2012-08-26 13:25:02
问题#1
参数是那些用逗号分隔的:)。
scanf("%d:%f:%1f\n", &a, &b, &c);
// 1 2 3 4问题2
这行打印+123,试一试。
printf("%+2d",123);来自http://www.cplusplus.com/reference/clibrary/cstdio/printf/
简介:%[flags][width][.precision][length]specifier
+):强制在结果前面加上正负号(+或-),即使是正数。默认情况下,只有负数前面有一个符号.2):要打印的最小字符数。如果要打印的值小于此数字,则结果将用空格填充。即使结果较大,也不会截断该值。d):有符号的十进制整数发布于 2012-08-26 13:26:46
在第一种情况下,参数意味着传递给函数的参数,而不是格式语句参数。在第二个问题中,加号表示输出a+,2表示输出至少使用两个位置。打印不会截断一个数字,因此它将打印出所有三个数字。
https://stackoverflow.com/questions/12130452
复制相似问题