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
