【问题标题】:Print a leading '+' for positive numbers in printf在 printf 中为正数打印前导“+”
【发布时间】:2011-04-05 02:12:22
【问题描述】:

我有一个温度转换程序作为作业,我已经完成了。该程序中有许多printf 语句用于打印温度。现在负温度按我想要的方式打印,但正温度打印时没有前导 + 符号。

现在获取printf 打印前导+sign 的最佳方法是什么?我能想到的就是改变

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

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

但这需要对程序进行许多更改:(

另一种选择是编写我自己的打印函数并将这个逻辑放在那里。你有什么建议?

【问题讨论】:

    标签: c string formatting format printf


    【解决方案1】:

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

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

    【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      我猜你的意思是做以下事情,

      double num1 = 1.;
      
      // print num1 with leading "+";
      printf("%s%lf\n",num1>0.?"+":"",num1);   // +1.000000
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-16
        • 1970-01-01
        • 2020-02-10
        • 2019-03-28
        • 2021-12-15
        • 1970-01-01
        • 1970-01-01
        • 2020-03-26
        相关资源
        最近更新 更多