C-equivalent of the 'setw' function

MD *_*med 11 c

在c ++中,setw函数用于设置要用作下一个插入操作的字段宽度的字符数.在C中是否有任何函数,我的意思是,在标准c库中,它做同样的事情?

ezp*_*zpz 19

printf ("%5d", 42);

将使用5个空格打印42.阅读printf的手册页,了解字符填充,溢出和其他细微差别的工作原理.

编辑:一些例子 -

int x = 4000;
printf ("1234567890\n");
printf ("%05d\n", x);
printf ("%d\n", x);
printf ("%5d\n", x);
printf ("%2d\n", x);
Run Code Online (Sandbox Code Playgroud)

给出输出

1234567890
04000
4000
 4000
4000
Run Code Online (Sandbox Code Playgroud)

请注意,它%2d太小而无法处理传递给它的数字,但仍然打印了整个值.

  • 请注意,在填充号前面放置一个`-`将使输出对齐到左侧.例如,`printf("% - 7s,"12345");`将打印`12345__`,其中`_`是一个空格.这与`printf("%7s,"12345")相反;`给你`__12345`.[相关答案](http://stackoverflow.com/a/276869/1214700) (3认同)

unw*_*ind 5

不可以,因为在C语言中使用的流不会像流对象那样保持状态。

您需要使用例如printf()合适的格式代码进行指定。