printf con zeri iniziali in C

printf con zeri iniziali in C


Ho un numero in virgola mobile come 4917.24 . Vorrei stamparlo per avere sempre cinque caratteri prima del punto decimale, con zeri iniziali, e poi tre cifre dopo il punto decimale.


Ho provato printf("%05.3f", n) sul sistema embedded che sto usando, ma stampa ***** . L'identificatore di formato è corretto?


Risposte:


Il tuo identificatore di formato non è corretto. Dal printf() pagina man sulla mia macchina:



Nel tuo caso, il tuo formato sarebbe %09.3f :


#include <stdio.h>
int main(int argc, char **argv)
{
printf("%09.3f\n", 4917.24);
return 0;
}

Uscita:


$ make testapp
cc testapp.c -o testapp
$ ./testapp
04917.240

Nota che questa risposta è subordinata al fatto che il tuo sistema incorporato abbia un printf() implementazione conforme agli standard per questi dettagli:molti ambienti incorporati non avere una tale implementazione.