scanf中的%2d是什么

scanf中的%2d是什么,c,scanf,C,Scanf,我知道这句话的意思 scanf("%d",&x); 但这句话有什么作用呢 scanf("%2d",&x); 我试图寻找这个,但找不到答案。我也想知道内部发生了什么。这是两位数字: int n = 0; scanf ("%2d", &n); printf ("-> %d\n", n); 十二, ->十二, 88657 ->88在“%”符号后面和要读取的数据类型前面的数字表示该特定类型数据的最大大小 当您读取整数(%2d)时,它将只允许长度不超过两位数的整数。如果

我知道这句话的意思

scanf("%d",&x);
但这句话有什么作用呢

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

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

这是两位数字:

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

88657
->88

在“%”符号后面和要读取的数据类型前面的数字表示该特定类型数据的最大大小

当您读取整数(%2d)时,它将只允许长度不超过两位数的整数。如果要读取50个字符长的数组,则应使用%49s(为空终止字节保留一个)。这是同样的想法

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

如果用户为scanf()函数传递了21,则数字21将存储在变量number中。如果用户传递的值大于21,即987,则只会存储前2位数字-98。

是否可以执行类似操作-scanf(“%2d.%d”和&x)?@Ashwin是的,但您需要另一个变量:
scanf(“%2d.%d”和&x,&y)因为您正在进行两次转换。请记住检查返回值。请注意,
23.000567
23.567
将在第二个变量中为您提供
567
;但是,这两个字符串的含义完全不同。您应该搜索
scanf()
函数。不难找到。多次阅读。
%nd
scanf()
中至少读取十进制整数
n
个字符宽。@SunilBojanapally:不是“至少”而是“最多”。如果遇到非数字的内容(字母、空格、标点符号、EOF等),它将在少于n个字符后停止。