Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

C localization functions

From Wikipedia, the free encyclopedia

C standard library (libc)
General topics
Miscellaneous headers

Incomputing,C localization functions are a group of functions in theC programming language implementing basic localization routines.[1][2] The functions are used in multilingual programs to adapt to the specific locale. In particular, the way of displaying of numbers and currency can be modified. These settings affect the behaviour ofinput/output functions in the C Standard Library.[3]

Overview of functions

[edit]

C localization functions and types are defined inlocale.h (clocale header in C++).[4][5]

FunctionDescription
setlocalesets and gets the current C locale
localeconvreturns numeric and monetary formatting details of the current locale

Criticism

[edit]

C standard localization functions are criticized because the localization state is stored globally. This means that in a given program all operations involving a locale can use only one locale at a time. As a result, it is very difficult to implement programs that use more than one locale.[6]

The functions alter the behavior of printf/scanf/strtod which are often used to write saved data to a file or to other programs. The result is that a saved file in one locale will not be readable in another locale, or not be readableat all due to assumptions such as "numbers end at comma characters". Most large-scale software forces the locale to "C" (or another fixed value) to work around these problems.

Example

[edit]
#include<locale.h>#include<stdio.h>#include<stdlib.h>intmain(void){/* Locale is set to "C" before this. This call sets it       to the "current locale" by reading environment variables: */setlocale(LC_ALL,"");conststructlconv*constcurrentlocale=localeconv();printf("In the current locale, the default currency symbol is: %s\n",currentlocale->currency_symbol);returnEXIT_SUCCESS;}

See also

[edit]

References

[edit]
  1. ^ISO/IEC 9899:1999 specification(PDF). p. 204, § 7.11Localization.
  2. ^Prata, Stephen (2004).C primer plus. Sams Publishing. Appendix B, Section V: The Standard ANSI C Library with C99 Additions.ISBN 0-672-32696-5.
  3. ^"ISO/IEC 9899:201x"(PDF). 12 April 2011. p. 181. Archived fromthe original(PDF) on 29 March 2018.
  4. ^"locale.h".utas.edu.au. infosys. Archived fromthe original on 4 June 2012. Retrieved14 September 2011.
  5. ^"openbsd/src".GitHub. Retrieved9 April 2018.
  6. ^"The Standard C Locale and the Standard C++ Locales". Rogue Wave Software, Inc. 1996. Archived fromthe original on 19 February 2020. Retrieved10 November 2011.
Retrieved from "https://en.wikipedia.org/w/index.php?title=C_localization_functions&oldid=1309225571"
Category:
Hidden category:

[8]ページ先頭

©2009-2025 Movatter.jp