C语言中%*s,%*c 是什么意思(还有%*.*s,%-*.*s)

https://www.cnblogs.com/ph829/p/5576832.html

C语言中%*s,%*c 是什么意思(还有%*.*s)

在 scanf 和 printf 里效果是不一样的。

在printf,动态控制显示格式用的

printf("%*s",5,"123");
执行一下,这条语句,输出
##123

(#代表一个空格)
类似于%5d 这样的状况
这里*被常量5代替,用于控制最小字符宽度,主要是针对,最小字符宽度未知的情况,当然*可以对应整型变量


在 scanf 里的意思,表示忽略要读的项。比如 %*d 就是读一个 %d 该读的东西,但不赋值给任何变量。

scanf("%*d %*d %d", &n);
如果输入2004 2005 2006
那么n=2006

关于%-*.*s:

-表示左对齐

小数点.前“*”,表示输出的字符所占位宽

小数点.后“*”  表示输出位数

你可能感兴趣的:(C语言中%*s,%*c 是什么意思(还有%*.*s,%-*.*s))