Outils pour utilisateurs

Outils du site


localisation:c

De la bonne utilisation des locales pour une utilisation cohérente des nombres flottants

Differences between the C Locale and the C++ Locales Archive le 21/10/2019

Par défaut, la locale est celle américaine. Ainsi, le séparateur décimal est le point (.). Il est souhaitable d'utiliser celui de l'utilisateur.

En C, il n'existe qu'une seule locale configurable par #include <locale.h>. Celle-ci est définie par la fonction setlocale. Ainsi pour forcer l'utilisation de l'environnement locale, il convient de l'appeler de la façon suivante : setlocale (LC_ALL, "");

Cependant en C++, il existe plusieurs locales configurables par #include <locale> (sans .h). std::setlocale est utilisée pour définir les fonctions identiques à celles du C (vsnprintf par exemple) ou encore std::to_string (double).

Mais la locale de std::cout, std::cerr et std::cint reste celle par défaut. Ainsi, il est nécessaire de définir également la locale de ces sorties par :

std::cout.imbue (std::locale (""));
std::cin.imbue (std::locale (""));
std::cerr.imbue (std::locale (""));
localisation/c.txt · Dernière modification : 2019/10/21 20:08 de root