Ecrire un nombre avec un séparateur décimal locale

Ecrire un nombre avec un séparateur décimal locale - C++ - Programmation

Marsh Posté le 03-11-2011 à 20:05:22    

Bonjour,
Je cherche à écrire un chiffre non entier avec le séparateur qui va bien suivant la configuration de l'environnement de travail.
 
Alors qu'en C un simple appel de setlocale(LC_NUMERIC,"" );
m'a suffit pour un vieux programme, je galère en C++ pour écrire correctement.
J'ai regardé des tas de site, mais je n'arrive jamais à faire sortir la moindre virgule de mon programme.
 
Est-ce que quelqu'un peut m'aider s'il vous plait ?


---------------
Laurent est mon fils.
Reply

Marsh Posté le 03-11-2011 à 20:05:22   

Reply

Marsh Posté le 03-11-2011 à 21:41:58    

std::locale et std::facet sont tes amis :

 

http://www.cplusplus.com/reference/std/locale/

 

et un example de std::numpunct qui doit etre le facet qu'il te faut:

 

http://www.koders.com/cpp/fid24C84 [...] def%3Asort


Message édité par Joel F le 03-11-2011 à 21:43:12
Reply

Marsh Posté le 03-11-2011 à 21:53:23    

L'équivalent C++ de setlocale(LC_ALL, "" ), c'est std::locale::global(std::locale("" )).  Mais comme les locales sont attachées aux streams lors de leur création, pour impacter cout, il faut en plus std::cout.imbue(std::locale("" )) pour changer la locale qui a été attachée à la création.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed