奇怪的printf

Grubby_c 2005-12-13 09:30:56
#include<stdio.h>
char str[] = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";

void main()
{
int i, n = 24;

for(i=1; i<=n; i++){
printf("%*.*s\n", 39+i, 2*i-1, str);
}

}
输出 A
AAA
:
:
AAAAAAAAAAAAAAAA

%*.*s
是什么意思?跟不定参数有关系吗?
...全文
109 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dx30611 2005-12-13
  • 打赏
  • 举报
回复
%40.1s
40为宽度,1为精度,s是字符串
Grubby_c 2005-12-13
  • 打赏
  • 举报
回复
知道了
Grubby_c 2005-12-13
  • 打赏
  • 举报
回复
i=1 %40.1s又是什么
ma100 2005-12-13
  • 打赏
  • 举报
回复
前边的*定义的是总的宽度,后边的定义的是输出的个数。
http://51qu.com/dispbbs.asp?boardid=7&id=246&star=1&page=1
xiaocai0001 2005-12-13
  • 打赏
  • 举报
回复
*.*
含义是*处的参数待定, 由后面的参数表对应的数值指定

printf("%*.*s\n", 39+i, 2*i-1, str);
即由39+i, 2*i-1这两个参数值对应.

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧