Выведите начальный «+» для положительных чисел в printf - PullRequest
25 голосов
/ 28 августа 2010

У меня есть программа преобразования температуры, которую я выполнил. В программе много операторов printf, которые печатают температуру. Теперь отрицательные температуры печатаются так, как я хочу, но положительные температуры печатаются без ведущего знака +.

Теперь, как лучше всего получить printf, печатать начальный знак + для положительного числа. Все, что я мог придумать, это изменить

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

до

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

Но это требует многих изменений в программе: (

Другой вариант - написать свою собственную функцию печати и поместить эту логику туда. Что вы предлагаете?

Ответы [ 2 ]

55 голосов
/ 28 августа 2010

Вы можете использовать + флаг printf для печати положительных чисел с начальным знаком + как:

printf("%+d %+d",10,-10); // prints +10 -10
17 голосов
/ 28 августа 2010

Добавьте флаг +. Вот пример.

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

(при условии, что n является целым числом - просто замените% d на другие числовые типы)

...