默认情况下,printf()
似乎将字符串向右对齐。
printf("%10s %20s %20s\n", "col1", "col2", "col3");
/* col1 col2 col3 */
我还可以像这样将文本向左对齐:
printf("%-10s %-20s %-20s", "col1", "col2", "col3");
有没有快速居中文本的方法?或者我是否必须编写一个将字符串转换为类似的函数test
into (space)(space)test(space)(space)
如果该列的文本宽度是 8?
printf 本身无法做到这一点,但您可以使用“间接”宽度,它通过从参数读取宽度来指定宽度。让我们试试这个(好吧,不完美)
void f(char *s)
{
printf("---%*s%*s---\n",10+strlen(s)/2,s,10-strlen(s)/2,"");
}
int main(int argc, char **argv)
{
f("uno");
f("quattro");
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)