web-dev-qa-db-ja.com

printfの正の数の先頭の「+」を出力します

課題として温度変換プログラムを作成しました。プログラムには、温度を出力する多くのprintfステートメントが含まれています。これで、負の温度は希望どおりに印刷されますが、正の温度は先頭の+記号なしで印刷されます。

ここで、正の数の先頭の+signをprintfで出力するための最良の方法は何ですか。私が考えることができるのは変えることだけです

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

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

しかし、それはプログラムの多くの変更を必要とします:(

別のオプションは、独自の印刷関数を作成し、このロジックをそこに配置することです。何を指示してるんですか ?

29
user292844

printf+フラグを使用して、先頭に+記号が付いた正の数を出力できます。なので:

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

+フラグを追加します。これが例です。

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

(nがintであると仮定します-他の数値タイプの%dを置き換えるだけです)

17
shreddd