printf()

Tutta l'informatica

printf()

Messaggioda clros » mer nov 22, 2006 10:59 am

Una domanda stupidissima da vero ignorante.

int a= 32526;

printf("%d\n",a);

l'output è : 32526

si può configurare la stringa di controllo in modo che all'output vengano aggiunti automaticamente i punti delle migliaia?Quello che vorrei ottenere è:

32.526

E' possibile?
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: printf()

Messaggioda riko » dom dic 03, 2006 9:36 pm

Possibile è possibile. Il modo giusto di farlo, è utilizzando i 'locales'. Ovvero direttive di nazionalità che dicono al sistema come trattare certe convenzioni.

In questo modo per passare un programma da una nazionalità all'altra, oltre a tradurre le stringhe, non bisogna pure tradursi gli specificatori di formato.

Dal manuale di printf

For some numeric conversions a radix character (‘decimal point’) or thousands’ grouping character is used. The actual character used depends on
the LC_NUMERIC part of the locale. The POSIX locale uses ‘.’ as radix character, and does not have a grouping character. Thus,
printf("%’.2f", 1234567.89);
results in ‘1234567.89’ in the POSIX locale, in ‘1234567,89’ in the nl_NL locale, and in ‘1.234.567,89’ in the da_DK locale.

L'esempio usa i float, ma suppongo lo stesso principio dovrebbe valere anche per gli int. Non ho troppa voglia di spulciare le 800 pagine di standard, si fa prima a provare :ride:
-enrico
fibs = 0 : 1: [ a + b | (a, b) <- zip fibs (tail fibs) ]


Akropolix: Community OFF-TOPIC di IKSnet
http://www.akropolix.net/forum

"se do da mangiare a un affamato mi dicono che sono un santo, se mi chiedo perch? ? affamato mi dicono che sono un comunista" (Helder C?mara, Arcivescovo di Recife)
Avatar utente
riko

Supremo
 
Messaggi: 3329
Iscritto il: gio mar 04, 2004 4:28 pm
Località: Chiba City


Torna a Tecnologia, internet, coding

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti