printf / sprintf问题,删除数字上的标志

时间:2015-03-14 06:43:48

标签: c++ c gcc g++ printf

我有一个可能是负数或正数的数字,我想让它从没有负号或正号的sprintf()中弹出。我该怎么做?

我尝试了%d % d %- d %+ d % -d % +d,但都没有。

我尝试了gcc 4.8.2和g ++ 4.8.2但它不起作用。这是gcc中的错误吗?

1 个答案:

答案 0 :(得分:3)

没有应用绝对值功能的格式字符串。

以下是您需要做的事情:

#include <stdio.h>
#include <math.h>

void main()
{
  int num = -6000;
  printf("%d\n", abs(num));
}
  • %d会将34呈现为34,将-34呈现为-34
  • % d会将34呈现为(空格)+ 34,将-34呈现为-34
  • %+d会将34呈现为+34,将-34呈现为-34
  • "%5d会将34呈现为(三个空格)+ 34,将-34呈现为(两个空格)+ -34。他们都将使用字段大小5.
  • "%-5d会将34呈现为34 +(三个空格),将-34呈现为-34 +(两个空格)。它们都将使用字段大小5,但由于-而左对齐。