注册 登录
编程论坛 新人交流区

为什么输出会是这样的结果?

封闭 发布于 2007-09-30 16:17, 358 次点击
main()
{
char *a;
a="hello, world";
printf(":%10s:\n",a);
printf(":%-10s:\n",a);
printf(":%20s:\n",a);
printf(":%-20s:\n",a);
printf(":%20.10s:\n",a);
printf(":%-20.10s:\n",a);
printf(":%.10s:\n",a);
printf("%s\n","very good");
}

输出:
:hello, world:
:hello, world:
:□□□□□□□□□hello, world:
:hello, world□□□□□□□□□:
:□□□□□□□□□□hello, worl:
:hello, worl□□□□□□□□□□:
:hello, worl:
very good


为什么输出的时候,第3段只有9个空格?
第5段的world成了worl?
和倒数第2段为什么会成了worl?
谢谢大虾们为小弟解决这个问题!
谢谢!~
3 回复
#2
kerr2007-09-30 17:27
char *a;
这个A不是字符吗?只是一个字符,你那字符串..
你用啥IDE?你打算写啥语言?
#3
封闭2007-09-30 22:43
我是C的初学者.
我用的是Win-TC.
char *a是字符串
#4
lm1682007-10-02 16:07
和“%s”有关
20,10 表示输出10个字符并且右对齐
1