Print a leading '+' for positive numbers in printf

28,555

Solution 1

You can use the + flag of printf to print positive numbers with a leading + sign as:

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

Solution 2

Add the + flag. Here is an example.

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

(assuming n is an int - just replace %d for other numeric types)

Share:
28,555
user292844
Author by

user292844

Updated on October 19, 2021

Comments

  • user292844
    user292844 over 2 years

    I've a temperature conversion program as an assignment, which I've completed. The program has many printf statements in it which print the temperature. Now the negative temperatures are printed the way I want them but the positive temperatures are printed without a leading + sign.

    Now what is the best way to get printf print a leading +sign for positive number. All I could think of is to change

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

    to

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

    But that calls for many changes in program :(

    Another option is to write my own print function and put this logic there. What do you suggest ?