printf a locale
Karel Zak
zakkr na zf.jcu.cz
Čtvrtek Prosinec 7 18:11:22 CET 2000
On Thu, 7 Dec 2000, Michal Fikera wrote:
> David Kuzela <xkuzd01 na vse.cz> wrote:
> : Michal Fikera pise:
> :> Dobry den,
> :> nevite nekdo jak prinutit printf, aby tisknul desetina cisla
> :> s teckou at je LC_* nastaveno jakkoli? Dival jsem se do zdrojaku
> :> libc a zadny figl jsem nenasel. Jedine co me funguje, je:
>
> : #include <locale.h>
> : struct lconv *localeconv(void);
>
> Tohle je sice pekne, ale ja nepotrebuju vedet co to bude tisknout
> normalne, ale ja potrebuju aby to tisklo .(tecku) vzdycky, at je LC_*
> nastaveno na co chce. Kdyz zmenim neco v te strukture co vrati
> localeconv, tak to samozrejme spadne na Segmentation fault.
char *lc_num;
/* store current locale setting
*/
lc_num = setlocale(LC_NUMERIC, NULL);
/* Set locale for "."
*/
setlocale(LC_NUMERIC, "C")
printf("%f", 1.234);
/* Set previous original locale
*/
setlocale(LC_NUMERIC, lc_num);
... pochopitelne, ze to nebude nijak rychle, ale je to 100% funkcni a
doufam, ze je to co chcete - jinak "man setlocale"
Karel
Další informace o konferenci Linux