2010-08-28 82 views
19

我已经完成了一个温度转换程序作为一个任务。该程序有很多printf语句可以打印温度。现在,负温度以我想要的方式打印,但正温度打印时没有前导符号+在printf中为正数打印领先'+'

什么是最好的方式获得printf打印领先的+正数的符号。所有我能想到的是改变

printf("Min temp = %d\n",max_temp) 

if(max_temp > 0) 
    printf("+"); 
printf("Min temp = %d\n",max_temp) 

但是,这要求在方案:(

另一种选择是我自己写的打印功能,并把这个逻辑很多变化there。你有什么建议?

回答

46

您可以使用+标志printf打印正数+签署:

printf("%+d %+d",10,-10); // prints +10 -10 
+7

礼貌方式说RTFM(开玩笑) – Tom 2010-08-28 02:56:01

+1

SO是FM !! – bobobobo 2012-05-04 15:09:54

14

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

int n; 
printf("%+d", n); 

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