在printf中为正数打印前导'+'

use*_*844 28 c string format formatting printf

我有一个温度转换程序作为一项任务,我已经完成了.该程序中有许多printf声明可以打印温度.现在,负温度按照我想要的方式打印,但正面温度打印时没有前导+符号.

现在,printf打印+正数的最佳方法是什么?我能想到的只是改变

printf("Min temp = %d\n",max_temp)
Run Code Online (Sandbox Code Playgroud)

if(max_temp > 0)
    printf("+");
printf("Min temp = %d\n",max_temp)
Run Code Online (Sandbox Code Playgroud)

但这要求程序中的许多变化:(

另一个选择是编写我自己的打印功能并将此逻辑放在那里.你有什么建议?

cod*_*ict 62

您可以使用printf+标志打印带有前导符号的正数:+

printf("%+d %+d",10,-10); // prints +10 -10
Run Code Online (Sandbox Code Playgroud)

  • 一种礼貌的方式来说RTFM(开玩笑) (9认同)
  • 这是FM! (5认同)

shr*_*ddd 19

添加+标志.这是一个例子.

int n;
printf("%+d", n);
Run Code Online (Sandbox Code Playgroud)

(假设n是一个int - 只替换其他数字类型的%d)