首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >四次争论?三次?

四次争论?三次?
EN

Stack Overflow用户
提问于 2012-08-26 13:19:47
回答 4查看 92关注 0票数 0

我正在研究一本C编程书中的一些问题,并遇到了一个有趣的问题:

  1. 对还是错? 声明: scanf("%d:%f:%1f\n",&a,&b,&c); 包含四个参数"%d:%f:%1f\n"&a&b&c。 给出的答案是true。为何会这样呢?这里没有4个参数/参数。
  2. 对还是错? 声明: (“%+2d”,123); 显示+12 答案是false。为何会这样呢?
EN

回答 4

Stack Overflow用户

发布于 2012-08-26 13:26:37

第一;

代码语言:javascript
复制
scanf("%d:%f:%1f\n", &a, &b, &c);

包含4个参数;

代码语言:javascript
复制
1: "%d:%f:%1f\n"
2: &a
3: &b
4: &c

二是;

代码语言:javascript
复制
printf("%+2d",123);

2表示最小字段宽度,但123大于2个字符,并将全部打印。+强制一个符号,所以结果是+123

票数 6
EN

Stack Overflow用户

发布于 2012-08-26 13:25:02

问题#1

参数是那些用逗号分隔的:)。

代码语言:javascript
复制
scanf("%d:%f:%1f\n", &a, &b, &c);
   // 1              2   3   4

问题2

这行打印+123,试一试。

代码语言:javascript
复制
printf("%+2d",123);

来自http://www.cplusplus.com/reference/clibrary/cstdio/printf/

简介:%[flags][width][.precision][length]specifier

  • 标志(+):强制在结果前面加上正负号(+或-),即使是正数。默认情况下,只有负数前面有一个符号.
  • 宽度(2):要打印的最小字符数。如果要打印的值小于此数字,则结果将用空格填充。即使结果较大,也不会截断该值。
  • 说明符(d):有符号的十进制整数
票数 5
EN

Stack Overflow用户

发布于 2012-08-26 13:26:46

在第一种情况下,参数意味着传递给函数的参数,而不是格式语句参数。在第二个问题中,加号表示输出a+,2表示输出至少使用两个位置。打印不会截断一个数字,因此它将打印出所有三个数字。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12130452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档