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 :

declaration de wcin


Sujet :

SL & STL C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Par défaut declaration de wcin
    bonjour !
    Je debute avec le C++ je suis entrain de lire le cour qui se trouve dans les tutoriel de C++ qui s'appel : Mega Cour du C & C++ .
    Arriver au chapitre 16 " Les locales " au niveau du : 16.2.2.1. La facette ctype , l'auteur donne un exemple :
    " Exemple 16-2. Conversion d'une wstring en string "
    j ai tester cet exemple qui ne voulait pas compiler avec le compilateur code::block 8.02 qui affiche le message :
    " error : wcin undeclared (first use in this function) "
    J ai essayer de comprendre comment on fait la declaration de : wcin, wcout .... dans ce cour mais je n ai pas reussi, j ai essayer plusieur maniere de declaration mias rien le premier code que j ai essayer c est : std::wcin>>S; mais j ai reçue le message : " wcin is not a member of std ".
    Quelqu un SVP pour m'aider .
    Merci à bientot !

  2. #2
    Membre très actif Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using namespace std; ??

  3. #3
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include <iostream>

    Et effectivement, ça s'utilise comme ça :

    Mais si tu écris ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    using namespace std; //en écrivant ça, tu rends l'écriture de "std::" facultative
    Tu pourras l'utiliser comme ceci :
    Mais attention, on n'écrit jamais de "using namespace" dans un header ! Même si ça compile, c'est mal.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Par défaut
    Merci a tous !
    voici l exemple tel qu il a été donner par l auteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    #include <iostream>
    #include <string>
    #include <locale>
     
    using namespace std;
     
    int main(void)
    {
        // Fixe la locale globale aux préférences de l'utilisateur :
        locale::global(locale(""));
        // Lit une chaîne de caractères larges :
        wstring S;
        wcin >> S;
        // Récupère la facette ctype<wchar_t> de la locale courante :
        const ctype<wchar_t> &f =
            use_facet<ctype<wchar_t> >(locale());
        // Construit un tampon pour recevoir le résultat de la conversion :
        size_t l = S.length() + 1;
        char *tampon = new char[l];
        // Effectue la conversion :
        f.narrow(S.c_str(), S.c_str() + l, 'E', tampon);
        // Affiche le résultat :
        cout << tampon << endl;
    	delete[] tampon;
        return 0;
    }
    On voie bien qu il a inclue le fichier <iostream> et aussi il a encoder : using namespace; pour utiliser l espace de nomage std
    mais malgre ça le compilateur ne reconnais pas wcin .
    est il possible que le fichier inclu est incomplé ?

  5. #5
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Par défaut
    Ah oui, là c'est bizarre. C'est EXACTEMENT ce fichier que tu essaies de compiler ?

    Si oui, je suppose que ton IDE est mal configuré, on va essayer de voir ça…

    Tu es sous quel OS ?
    Quel compilateur utilises-tu ?
    Dans Code::Blocks, tu peux savoir ça en allant dans :
    Settings > Compiler and debugger, dans Global compiler settings, onglet Toolchain executables, sous-onglet Program Files, champs C++ compiler et linker for static/dynamic libs.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    Ton code compile sans problème chez moi avec Visual Express.
    Pour, Code::block/gcc, il m'a fallu définir l'option _GLIBCXX_USE_WCHAR_T. Par contre, j'arrive pas à linker (dois pas avoir une verstion wXXX des libs).

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Par défaut
    Citation Envoyé par Florian Goo Voir le message
    Ah oui, là c'est bizarre. C'est EXACTEMENT ce fichier que tu essaies de compiler ?

    Si oui, je suppose que ton IDE est mal configuré, on va essayer de voir ça…

    Tu es sous quel OS ?
    Quel compilateur utilises-tu ?
    Dans Code::Blocks, tu peux savoir ça en allant dans :
    Settings > Compiler and debugger, dans Global compiler settings, onglet Toolchain executables, sous-onglet Program Files, champs C++ compiler et linker for static/dynamic libs.
    Salut !
    C++ compiler : mingw32-g++.exe
    linker dynamic lib : mingw32-g++.exe
    linker static lib : ar.exe
    Merci ! à bientot !

  8. #8
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Par défaut
    Que donne cette commande :
    et celle-ci, dans le même dossier que ton source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mingw32-g++ nom_du_fichier.cpp

    Chez moi ça compile avec les options par défaut, sous Linux.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  9. #9
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Les flux standards unicode ne marchent pas sous MinGW, c'est connu.
    Même si tu changes les defines pour que wcin et wcout soient déclarés, tu auras des erreurs à l'édition de liens.

    Sous Visual Studio ça marche.
    <troll>Donc, Visual est mieux que MinGW</troll>
    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.

  10. #10
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Les flux standards unicode ne marchent pas sous MinGW, c'est connu.
    Même si tu changes les defines pour que wcin et wcout soient déclarés, tu auras des erreurs à l'édition de liens.
    Aucune solution n'existe?

    Citation Envoyé par Médinoc Voir le message
    Sous Visual Studio ça marche.
    <troll>Donc, Visual est mieux que MinGW</troll>
    <troll bis>Donc t'en as pour ton argent</troll bis>

  11. #11
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Par défaut
    Même avec les versions plus récentes ? Attendons de voir quelle version il a !

    <troll>
    Variante :
    Ça marche sous Linux mais pas sous Windows, donc Linux > Windows.
    </troll>
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  12. #12
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Aucune solution n'existe?
    Je ne sais pas. Tu peux te référer à ceci...
    http://www.developpez.net/forums/d55...-cpp-lactiver/
    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.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Par défaut
    Citation Envoyé par Florian Goo Voir le message
    Même avec les versions plus récentes ? Attendons de voir quelle version il a !
    tu veut dire :
    os win xp
    C++ compiler : mingw32-g++.exe
    linker for dynamic libs : mingw32-g++.exe
    linker fror static lib : ar.exe
    ou alors tu veut dire autr chose ?

  14. #14
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je dirais la version de g++.
    Mais chaque fois que j'ai vu un MinGW sous Windows, il était livré avec un vieux gcc 3.4.2, qui ne possède pas l'option -wnomissing-initializers alors que ce warning est compris dans -wextra...
    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.

  15. #15
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Par défaut
    Citation Envoyé par aliwatte Voir le message
    tu veut dire :
    os win xp
    C++ compiler : mingw32-g++.exe
    linker for dynamic libs : mingw32-g++.exe
    linker fror static lib : ar.exe
    ou alors tu veut dire autr chose ?
    Je voudrais avoir la version de ton compilateur C++ (c'est à dire mingw32-g++).
    Pour cela il faut que tu écrives ceci dans un terminal (ou console, ou émulateur de DOS), comme je t'ai dit plus haut :
    Mais comme dit Médinoc, tu dois avoir un GCC 3.4.x.

    Si c'est bien le cas, rends-toi sur cette page pour télécharger une version plus récente :
    http://sourceforge.net/project/showf...?group_id=2435
    Il te faut :
    - GCC Version 4
    - GNU Binutils
    - GNU Make (optionnel)
    - GNU Source-Level Debugger (optionnel)
    - MinGW API for MS-Windows
    - MinGW Runtime
    Prends les plus récentes de chaque.
    Et tu dézippes (ou plutôt désevenzippes) le tout dans le même dossier. Tu ajoutes les xxx\bin et xxx\lib dans le PATH.
    J'espère de pas dire d'ânerie, j'ai pas de Windows sous la main.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Par défaut
    bonsoir !
    j ai verifier la version du gcc et c est gcc3.45
    j ai telecherager mingw32-5.15 et la version la plus recente du gcc c etait la meme vesion que j ai c est à dire gcc 3.45

  17. #17
    Membre chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Par défaut
    Citation Envoyé par Florian Goo Voir le message
    rends-toi sur cette page pour télécharger une version plus récente :
    http://sourceforge.net/project/showf...?group_id=2435
    Il te faut :
    - GCC Version 4
    - GNU Binutils
    - GNU Make (optionnel)
    - GNU Source-Level Debugger (optionnel)
    - MinGW API for MS-Windows
    - MinGW Runtime
    Prends les plus récentes de chaque.
    Et tu dézippes (ou plutôt désevenzippes) le tout dans le même dossier. Tu ajoutes les xxx\bin et xxx\lib dans le PATH.
    J'espère de pas dire d'ânerie, j'ai pas de Windows sous la main.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Par défaut
    vu que je n ai pas reussi a telecharger la version 4.xx du gcc , j ai telecharger alors visual studio je l ai tester il reconait bien " wcin " et le code a bien compiler ,
    Merci a tous pour l aide que vous avez donner !

Discussions similaires

  1. [Traduction] probleme de declaration
    Par Mercilius dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2003, 16h16
  2. Declaration d objets en tableau
    Par Spin dans le forum Composants VCL
    Réponses: 6
    Dernier message: 16/03/2003, 22h18
  3. [Dev c++ 4] implicite declaration of function "int kbhi
    Par Torpedox dans le forum Dev-C++
    Réponses: 5
    Dernier message: 01/01/2003, 13h37
  4. Declaration Type ds une procedure
    Par Qwazerty dans le forum Langage
    Réponses: 6
    Dernier message: 28/08/2002, 09h09
  5. Declarer une dll Delphi ?
    Par DelphiCool dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 10h07

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