什么是scanf中的%2d

问题描述 投票:3回答:2

我知道这句话的意思

scanf("%d",&x);

但这句话的作用是什么

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

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

c scanf
2个回答
9
投票

这是两位数字:

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

12 -> 12

88657 -> 88


2
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.