C语言相当于'setw'函数

时间:2010-07-06 14:31:36

标签: c

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

4 个答案:

答案 0 :(得分:18)

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);

提供输出

1234567890
04000
4000
 4000
4000

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

答案 1 :(得分:4)

不,因为C中使用的流不像流对象那样维护状态。

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

答案 2 :(得分:2)

另一种选择是将格式字符串定义为变量:

char print_format[] = "%5d"; printf(print_format, 42);

以上类似于C ++ setw,因为您可以在打印前设置变量的内容。许多场合需要动态格式化输出。这是实现它的一种方法。

答案 3 :(得分:-1)

setw操纵器: 该操纵器设置输出的最小字段宽度。语法是: 运输及工务局局长(x)的 这里setw导致其后面的数字或字符串在x字符宽的字段内打印,x是setw操纵器中设置的参数。使用setw操纵器时必须包含的头文件是 示例代码

 #include <iostream>
 using namespace std;
 #include <iomanip> 
  
 void main( )
 {
 int x1=12345,x2= 23456, x3=7892;
 cout << setw(8) << "Exforsys" << setw(20) << "Values" << endl
         << setw(8) << "E1234567" << setw(20)<< x1 << endl
         << setw(8) << "S1234567" << setw(20)<< x2 << endl
         << setw(8) << "A1234567" << setw(20)<< x3 << endl;
 }