Espacios de nombres
Variantes
Acciones

LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME

De cppreference.com
< c‎ | locale
Definido en la cabecera <locale.h>
#define LC_ALL      /*definido en la implementacion*/
#define LC_COLLATE  /*definido en la implementacion*/
#define LC_CTYPE    /*definido en la implementacion*/
#define LC_MONETARY /*definido en la implementacion*/
#define LC_NUMERIC  /*definido en la implementacion*/
#define LC_TIME     /*definido en la implementacion*/

Cada una de las constantes de macro anteriores se expande a expresiones de constantes enteras con valores distintos que son adecuados para su uso como primer argumento de setlocale.

Constante Explicación
LC_ALL selecciona toda la localización C
LC_COLLATE selecciona la categoría de compaginación de la localización C
LC_CTYPE selecciona la categoría de clasificación de caracteres de la localización C
LC_MONETARY selecciona la categoría de formato monetario de la localización C
LC_NUMERIC selecciona la categoría de formato numérico de la localización C
LC_TIME selecciona la categoría de formato de hora de la localización C

Las constantes de macro adicionales, con nombres que empiezan por LC_ seguidos de al menos una letra mayúscula, pueden definirse en locale.h. Por ejemplo, la especificación POSIX requiere LC_MESSAGES (que controla, entre otras cosas, perror} y strerror), ISO/IEC 30112:2014 (borrador 2014) define adicionalmente LC_IDENTIFICATION, LC_XLITERATE, LC_NAME, LC_ADDRESS, LC_TELEPHONE, LC_PAPER, LC_MEASUREMENT, y LC_KEYBOARD, que son soportados por la biblioteca C de GNU (excepto LC_XLITERATE)

[editar] Ejemplo

#include <stdio.h>
#include <locale.h>
#include <time.h>
#include <wchar.h>
 
int main(void)
{
    setlocale(LC_ALL, "en_US.UTF-8");      // la localización C será el idioma inglés habilitado para UTF-8
    setlocale(LC_NUMERIC, "de_DE.utf8");   // la coma decimal será en alemán
    setlocale(LC_TIME, "ja_JP.utf8");      // el formato de fecha/hora será en japonés
    wchar_t str[100];
    time_t t = time(NULL);
    wcsftime(str, 100, L"%A %c", localtime(&t));
    wprintf(L"Number: %.2f\nDate: %Ls\n", 3.14, str);
}

Posible salida:

Number: 3,14
Date: 月曜日 2017年09月25日 13時00分15秒

[editar] Referencias

  • Standard C11 (ISO/IEC 9899:2011):
  • 7.11/3 Localization <locale.h> (p: 224)
  • Standard C99 (ISO/IEC 9899:1999):
  • 7.11/3 Localization <locale.h> (p: 205)
  • Standard C89/C90 (ISO/IEC 9899:1990):
  • 4.4 LOCALIZATION <locale.h>

[editar] Véase también

obtiene y configura el ajuste de la localización actual de C
(función) [editar]
Documentación de C++ para categorias de localización