IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SL & STL C++ Discussion :

MinGw / Windows - caractères spéciaux et flux de fichiers


Sujet :

SL & STL C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 127
    Points : 49
    Points
    49
    Par défaut MinGw / Windows - caractères spéciaux et flux de fichiers
    Bonjour,

    Je travaille sur du code C++ d’une librairie utilisant des flux d’entrées et de sorties ifstream et ofstream. L’environnement d’exécution ciblé est Windows et le compilateur est MinGw g++. Le problème est que dès qu’il y a des caractères spéciaux (accents par exemple), mon code plante car l’UTF16 de windows n’est pas gérés par ces flux. Après moultes recherche sur internet, je ne trouve pas de solution à mon problème pourtant basique. Mes besoins seraient couverts par un code couvrant l’exemple suivant :
    - Passage d’un chemin d’un fichier en argument de ligne de commande contenant des accents (ex : « C:\\temp\\nomaccentué.txt »),
    - Lecture du contenu de fichier contenant une ligne décrivant un fichier accentué lui aussi (ex : « C:\\temp\\nomaccentué2.txt »),
    - Ecriture dans ce dernier fichier d’une chaîne de caractères avec elle aussi des caractères accentués.
    Dois-je nécessairement passé par l’API win32 ?

    Vous remerciant par avance.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    "C:\\temp\\nomaccentué.txt "
    Les caractères accentués ne sont pas standardisé en ASCII et cette chaine sera interpréter en ASCII dans le code.
    Définissez la constante compilation "UNICODE" pour que votre projet utilise automatiquement les API UNICODE à la place des API ASCII.
    Utilisez la MACRO _T ou TEXT pour définir des constantes "texte" en UNICODE.
    Utilisez des wstream à la place des stream.

Discussions similaires

  1. Problème pour supprimer les caractères spéciaux des noms de fichiers
    Par Steph84563 dans le forum Shell et commandes POSIX
    Réponses: 0
    Dernier message: 15/04/2014, 10h28
  2. [RegEx] Supprimer les caractères spéciaux des noms de fichiers
    Par Steph84563 dans le forum Langage
    Réponses: 4
    Dernier message: 11/04/2014, 14h51
  3. Réponses: 7
    Dernier message: 08/07/2013, 12h45
  4. [Batch] caractères spéciaux à écrire dans un fichier
    Par nekcorp dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 24/05/2012, 13h33
  5. Réponses: 3
    Dernier message: 01/12/2005, 21h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo