帮忙看一下书上没有的问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 01:01:00
#include<stdio.h>
main()
{
int i=1;
printf("##%*d%d\n",i,i);
i++;
printf("##%*d%d\n",i,i);
i++;
printf("##%*d%d\n",i,i);
}
输出的结果是
##12367460
##(1个空格)22367460
##(2个空格)32367460
如果换成
#include<stdio.h>
main()
{
int i=1;
printf("##%*d%*d\n",i,i);
i++;
printf("##%*d%*d\n",i,i);
i++;
printf("##%*d%*d\n",i,i);
}
机会输出很多空行人后输出一个1243068
*到第七什么作用?

我也是从网上搜的:

######################################拾遗########################################
由高手指点
对于m.n的格式还可以用如下方法表示(例)
char ch[20];
printf("%*.*s\n",m,n,ch);
前边的*定义的是总的宽度,后边的定义的是输出的个数。分别对应外面的参数m和n 。我想这种方法的好处是可以在语句之外对参数m和n赋值,从而控制输出格式。

另外一个:
输出结果为

*是表示输出的宽度需再读入一个变数
例如printf("%*d",5,5) 等于 printf("%5d",5)
printf("%*d",9,3) 等于 printf("%9d",3)

本文来自: 站长创投(www.Adminvc.com) 详细出处:http://www.adminvc.com/bbsid-106539-9.html