Comment gérer les caractères spéciaux comme "ç" en lecture et en écriture
aurelie2003
Messages postés16Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention 8 juillet 2009
-
9 mars 2007 à 04:22
emiaille
Messages postés11Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention11 mars 2007
-
11 mars 2007 à 17:30
Bonjour,
Mon code ne comprend pas lorsque j'entre au clavier un ç. Voici un exemple:
string langue;
cout<<"Entrez la langue"<<endl;
//Supposons que je rentre : français
cin>>langue;
if(langue == "français") ... //on ne pourra jamais rentrer dans cette boucle.
Comment faire pour régler les caractères spéciaux en lecture et écriture en C/C++?
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 9 mars 2007 à 10:48
Salut,
Tu peux faire un echo ç > temp.txt dans une console, puis faire un
copier coller du caractère dans ton source. Il doit trainer aussi des
utilitaires et des tables de convertion sur le net.
mogwai93
Messages postés361Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention19 mars 2015 9 mars 2007 à 13:43
pour les chaines de caracteres, il ne faut pas utiliser ==
mais strcmp, istrcmp, .....
ici :
if !istrcmp( langue, "français")
{
// les 2 mots sont équivalents
}
le test avec = ne fonctionne qu'1 caractere
un truc aussi à penser : les problemes de casse !!
aurelie2003
Messages postés16Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention 8 juillet 2009 9 mars 2007 à 15:10
pour les chaines de caracteres, il ne faut pas utiliser ==
mais strcmp, istrcmp, .....
ici :
if !istrcmp( langue, "français")
{
// les 2 mots sont équivalents
}
le test avec = ne fonctionne qu'1 caractere
un truc aussi à penser : les problemes de casse !!
donc aucun rapport avec les caracteres speciaux !
_--------------------------------------------------------
Bonjour,
tu te trompes. Je ne te parle pas de char * mais de string. Or, pour une string, l'opérateur surchargé == permet de faire une comparaison de cette façon.
Maintenant, pour ma question, ca a rapport avec les caractères spéciaux. Autre exemple, si tu écris cout<<"é";
à l'écran, il y aura autre chose qui sera écrit à la place. Fais le test et tu verras de quoi je parle.
Il y a une façon de gérer le problème que je parle en incluant une librairie (ou autre chose?) mais je ne m'en souviens plus.
emiaille
Messages postés11Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention11 mars 2007 11 mars 2007 à 17:30
Bonjour,
La librairie qui permet de gérer des chaînes de caractères accentués est la Glib fournit avec GTK mais qui marche aussi indépendamment. On la trouve ici pour les sources et ici pour la libraire windows.
Il faut utiliser la classe Glib::ustring qui repose sur l'encodage UTF-8. La classe fournit une interface similaire à std::string, et il existe aussi des interfaces pour passer entre les 2 types.
Je ne pourrais pas plus t'aider car je ne l'ai jamais utilisé, je sais juste qu'elle existe.