首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

printf %*s解决思路

2012-08-11 
printf %*sprintf(%*s%s, /*这里的参数应该是几个?*/);[解决办法]应该是3个.printf(%*s%s, 10, hello

printf %*s
 
 printf("%*s%s", /*这里的参数应该是几个?*/);

[解决办法]
应该是3个.
printf("%*s%s", 10, "hello", "huanmie");

3.width 用于控制显示数值的宽度,取值和含义如下   
n(n=1,2,3...) 宽度至少为n位,不够以空格填充   
0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充   
* 格式列表中,下一个参数还是width 

---http://baike.baidu.com/view/410546.htm?fr=ala0_1_1
[解决办法]
是3个参数,%*s需要2个参数,其他跟普通一样

[解决办法]
最小域宽和精度限定符可以通过变元而不是常数提供给printf(),为了实现这一点,我们用*作为占位符。当编译器扫描到格式串时,printf()将*与变元串中的参数按顺序匹配!

C/C++ code
#include <stdio.h>int main(void){    printf("%*.*f",10,4,1234.34); // 第一个*与10匹配,第二个*与4匹配。打印结果:1234.3400                 return 0;}
[解决办法]
探讨

这个是ansi标准里面的吗
前两天才用 结果因为不确定是不是标准 又给换了
printf( "%*s", len, str );
输入长度为len的字符串 不足补空格

[解决办法]
探讨
%*S
对应两个输出参数:一个宽度,一个字符串
大家可能都练过这个图案的打印:
*
**
***
****
*****
******
。。。
用%*S格式可能用一层循环实现之
for(k=0;k<n;k++)
printf("%*s",k+1,"***********");

[解决办法]
探讨
%*S
对应两个输出参数:一个宽度,一个字符串
大家可能都练过这个图案的打印:
*
**
***
****
*****
******
。。。
用%*S格式可能用一层循环实现之
for(k=0;k<n;k++)
printf("%*s",k+1,"***********");

[解决办法]
22楼、22楼二位:抱歉了,那天匆忙,代码有误

printf("%-10.*s\n",k+1,"**********");/*-号左对齐,10.*起宽度控制,*放在小数点后*/
[解决办法]
22楼、27楼二位:抱歉了,那天匆忙,代码有误

printf("%-10.*s\n",k+1,"**********");/*-号左对齐,10.*起宽度控制,*放在小数点后*/ 

再给段新代码:
int k,n=10;
for(k=1;k<n;k++)
printf("%*.*s\n",k<n/2?k+n:2*n-k,k<n/2?2*k-1:2*(n-k)-1,"*******************");
输出的比上边的图案更复杂些,试试看。
 

[解决办法]
关键要区别scanf和printf里面的%*不是一个意思啊!

热点排行