POUR AFFICHER LES CARACTÈRES ACCENTUÉS SOUS WINDOWS EN MODE CONSOLE

Signaler
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Messages postés
329
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
26 juillet 2021
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/53868-pour-afficher-les-caracteres-accentues-sous-windows-en-mode-console

Messages postés
329
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
26 juillet 2021
2
Renfield et FraGag,
Merci beaucoup d'avoir indiqué comment on peut éviter le problème ou comment le traiter autrement. Il y a probablement encore d'autres solutions ( Unicode ... ). Et celle-ci peut admettre des variantes. A chacun de faire son choix.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
vues les manipulations requises, ca tend a me rassurer dans mes choix: ne pas mettre d'accent dans mes consoles ^^
Messages postés
6
Date d'inscription
vendredi 8 juin 2012
Statut
Membre
Dernière intervention
8 juin 2012

Cette réponse me satisfait, en effet, mieux que la précédente. J'en avais conçu le principe, mais, devant la première réponse, j'avais craint d’être importun.
Avec ce nouveau code, le résultat devient vraiment parfait.
Messages postés
329
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
26 juillet 2021
2
Jojo Lancien,
Je reprends ici ma réponse faite trop rapidement.
C'est tout à fait exact, si on fait ici : main.exe > texte.txt
On obtient un fichier texte.txt inutilisable.
Mais on peut le corriger facilement avec un montrer.bat : montrer.exe texte.txt console.txt
et le fichier simplifié montrer.cpp suivant :
#include 
#include <fstream>
#include <string>
#include <windows.h>
using namespace std;
int main(int argc, char *argv[]) {
ifstream ifs(argv[1]);
ofstream ofs(argv[2]);
string s;
while (getline(ifs, s)) {
char* buf;
buf = new char[s.size()+1];
OemToChar(s.c_str(), buf);
s = buf;
delete [] buf;
ofs << s << endl;
}
return 0;
}

Le fichier console.txt obtenu est conforme à l'affichage ayant été envoyé dans texte.txt
Merci d'avoir indiqué un complément pouvant être utile à certains besoins.
Afficher les 10 commentaires