2010-08-28 18 views
19

Tengo un programa de conversión de temperatura como tarea, que he completado. El programa tiene muchas declaraciones printf que imprimen la temperatura. Ahora las temperaturas negativas se imprimen como yo quiero, pero las temperaturas positivas se imprimen sin un signo +.Imprime un '+' inicial para números positivos en printf

Ahora, ¿cuál es la mejor manera de obtener printf imprimir un signo + líder para el número positivo. Todo lo que podía pensar es cambiar

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

a

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

Pero que requiere muchos cambios en el programa :(

Otra opción es escribir mi propia función de impresión y poner esta lógica allí. ¿Qué sugieres?

Respuesta

46

Puedes usar la bandera + de printf para imprimir números positivos con un + firmo como:

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

una forma educada de decir RTFM (es broma) – Tom

+1

también lo es la FM !! – bobobobo

14

Agregue la bandera +. Aquí hay un ejemplo.

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

(suponiendo que n es un entero - basta con sustituir% d para otros tipos numéricos)

Cuestiones relacionadas