【发布时间】:2021-10-23 10:45:15
【问题描述】:
在 printf 中,字段宽度可以指定为 '*'
printf("%*s", 99, str);
如何在 scanf 中执行相同操作而不将其解释为分配抑制字符?
示例 1:
char str[100];
scanf("%**s %s", 10, str);
第一个星号应该被解释为赋值抑制,第二个星号应该被解释为字段宽度,因此上面的scanf应该读取并忽略10个字符,然后读取并存储下一个字符串到str中。
示例2:
char str[100];
scanf("%*s", 10, str);
第一个星号应该被解释为字段宽度,所以上面的scanf应该读取10个字符并将它们存储在str中
【问题讨论】: