C语言格式化字符串细节 --- %*s %*c %*.*s

参考

https://blog.csdn.net/qq_41668789/article/details/84719348

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

scanf()函数

“*”符用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。
scanf("%*d %*d %d", &n);
如果输入2004 2005 2006,那么n=2006

printf()函数

”符用以动态控制显示格式,
printf("%*s",5,"123");
输出 ##123(#代表一个空格)。
类似于 %5s 这样的状况,这里
被常量5代替,用于控制最小字符宽度,主要是针对,最小字符宽度未知的情况,当然*可以对应整型变量

关于 %.s

小数点.前也可以添加*,也要用户输入一个位宽值来代替,表示输出的字符所占位宽。

原文地址:https://www.cnblogs.com/Higgerw/p/14252381.html