什么是scanf中的%2d

时间:2012-12-17 09:01:05

标签: c scanf

我知道这句话的意思

scanf("%d",&x);

但这句话是做什么的

scanf("%2d",&x);

我试着寻找这个,但找不到答案。我想知道内部发生了什么。

2 个答案:

答案 0 :(得分:9)

这是两位数字:

int n = 0;
scanf ("%2d", &n);
printf ("-> %d\n", n);

12 - > 12

88657 - > 88

答案 1 :(得分:2)

“%”符号后面的数字以及您希望读取的数据类型之前的数字表示该特定数据类型的最大大小。

在读取整数(%2d)时,它只允许长达两个位的整数。如果您要读取50个字符长的数组,则应使用%49s(留下一个用于空终止字节)。这是一样的想法。

int number = 0;
scanf("%2d", &number);
printf("%d", number);

如果用户为scanf()函数传递了21,则数字21将存储在变量编号中。如果用户传递的信息超过21,即987,则只存储前2位数字 - 98。