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

  1. ###raw>post.musername###
    Membre du Club
    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.
      0  0

  2. ###raw>post.musername###
    Expert éminent sénior
    "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.
      0  0