snprintf : simple way to force . as radix?

拥有回忆 提交于 2019-12-02 07:07:10

You should be able to change your locale-setting using the setlocale-function to make snprintf use a dot. Try setting it to "POSIX" or "C". (setlocale(LC_ALL, "POSIX")

Doon

. versus , is set by the LC_NUMERIC part of the locale. So make sure you set your program to use a locale that uses the . (such as "POSIX").

For library code, you may wish to use the POSIX 2008 uselocale function instead of setlocale. It is able to set a thread-specific locale, so that if your library code is called from a program that uses threads, it won't mess up the other threads' behavior (and/or crash the program, since setlocale is not thread-safe).

For application code, you should simply avoid ever setting the LC_NUMERIC locale category to anything but C/POSIX. The only categories you really need to set for most applications are LC_CTYPE, LC_MESSAGES, and possibly LC_COLLATE.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!