Salut,
J'ai un petit probleme, c' est que je n'arrive pas a afficher les accents (é, à, è,...) dans mon programme C.
Merci![]()
Salut,
J'ai un petit probleme, c' est que je n'arrive pas a afficher les accents (é, à, è,...) dans mon programme C.
Merci![]()
Ce problème ne se présente que sous Windows, à cause de ses besoins de compatibilité avec les anciens programmes DOS.
Si tu utilises ton programme dans un invite de commande, tu peux faire ceci avant de l'appeler:
Et ton programme devrait afficher correctement les accents.
Code X : Sélectionner tout - Visualiser dans une fenêtre à part mode con codepage select=1252
Mais si tu veux plus pratique, il faut convertir avant la sortie. Windows propose des fonctions comme CharToOemA() et CharToOemBuffA() pour faire la conversion.
Le revers de la médaille, c'est que pour bien faire, il faudrait ne faire la conversion que si la sortie est la console. Mais tu peux aussi t'en passer (le programme écrira alors exactement comme un programme DOS).
En fait, la seule façon qui marche à 100% sous Windows, c'est d'y aller en unicode. Et encore, il ne faut pas avoir Visual 6.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
L'environnement graphique de Windows et la console n'utilisent pas le même jeu de caractères, la console utilise par défaut le jeu de cracatères qui fut utilisé sous DOS afin de garder une compatibilité avec les anciens programmes. Le seul point commun entre ces deux jeux de caractères est la partie ASCII (qui ne contient pas de caractères accentués). Donc si tu veux compiler un programme qui utilise des caractères accentués et qui est destiné à être exécuté dans la console, édite simplement ton fichier source sous la console avec le programme edit.com par exemple (évidemment c'est qu'un simple éditeur de texte, pas de coloration syntaxique et moins encore de complétion de code, pas de menu compiler non plus ... juste pour taper le programme). Les solutions de Médinoc sont quand même plus faciles à mettre en oeuvre.
Un truc tout con qui t'es peut-être pas venu à l'esprit aussi : vérifie que l'éditeur de texte avec lequel tu programme soit dans le même codage que la console ... sinon il y a incompatibilité.
Par défaut, ce n'est pas le cas: L'éditeur de texte est généralement en codage "fenêtré" et non en codage "console".
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Mais certains éditeurs offrent la possibilité de choisir l'encodage avec lequel enregistrer le fichier. Il sufft de choisir MS-DOS. Sinon, il y a aussi des outils de conversion comme fconvert.exe (fourni avec les compilos Borland). Il sait faire la conversion ANSI -> OEM et OEM -> ANSI.
Partager