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

C++ Discussion :

probleme avec string


Sujet :

C++

  1. #1
    Membre �clair� Avatar de elghadi_mohamed
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2005
    Messages
    227
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 227
    Par d�faut probleme avec string
    bonjour

    j'ai essaye d'ecrire un petit code pour l'affichage d'une chaine:

    mais �a ne marche pas il m'ecrit que le probleme est au niveau de cout!!

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    int main()
    {
    	string a="elhadramiy wedoud";
    	cout << a <<"\n" << endl;
    	return 0;
    }

  2. #2
    R�dacteur/Mod�rateur
    Avatar de JolyLoic
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    5 463
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Yvelines (�le de France)

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

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 5 463
    Par d�faut
    Tu as bien mis les include est les using namespace que ton code demande ?

    PS : endl passe d�j� � la ligne, pas besoin de "\n".
    Ma session aux Microsoft TechDays 2013 : D�velopper en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage � la d�couverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'h�sitez pas � me contacter.

  3. #3
    Membre �clair� Avatar de elghadi_mohamed
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2005
    Messages
    227
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 227
    Par d�faut probleme avec string
    j'ai bien ajoute les fichiers d'entete et voici le debut du code :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    #include <iostream>
     
    using namespace std;
    et merci pour la remarque

  4. #4
    R�dacteur
    Avatar de Bakura
    Homme Profil pro
    �tudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par d�faut
    Il faut inclure #include <string> si tu veux utiliser des objets string.

  5. #5
    Membre chevronn� Avatar de aziz jim
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2005
    Messages
    455
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 455
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include"iostream"
    #include"string"
     
    using namespace std;
     
    int main()
    {
    string a="elhadramiy wedoud";
    cout << a << endl;
    system("pause");  // si à l'exécution ça ne reste en écran que moin d'un ;) 
    }

  6. #6
    Membre chevronn�
    Avatar de NewbiZ
    Profil pro
    �tudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Par d�faut
    Avec des <>, des () au lieu de la trompeuse utilisation de =, et une utilisation du namespace explicite (std::cout) je suis d'accord :p

  7. #7
    Invit�
    Invit�(e)
    Par d�faut
    Citation Envoy� par aziz jim
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include"iostream"
    #include"string"
     
    using namespace std;
     
    int main()
    {
    string a="elhadramiy wedoud";
    cout << a << endl;
    system("pause");  // si à l'exécution ça ne reste en écran que moin d'un ;) 
    }
    il est d�conseill� d'utiliser une using namespace ayant une port�e sur tout le module de traduction. il est pr�f�rable d'utikiser une telle directive dans une fonction ou dans un bloc interne a une fonction.

    par ailleur, quand on insere un en-tete du compilateur, on le fait avec un #include <...> et non pas un #include "...". la notation <> significe au compilateur que le fichier est dans son dossier d'installation, alors que l'utilisation des "" signifie que le fichier est un fichier du projet.

    enfin, il est pr�f�rable d'utiliser des m�thodes standard plutot que des appels sp�cifiques au systeme d'exploitation. en d'autres mots, system("pause") ne marchera que sous windows, alors qu'un appel a getch() marchera sur toutes les plateformes (en pensant bien sur a faire un #include<conio.h> pr�alable).

    elghadi quant � toi, quand tu dis :
    mais �a ne marche pas il m'ecrit que le probleme est au niveau de cout!!
    certes, si tu le dis, c'est que c'est surement vrai. mais nous de notre cot�, on n'a aucune id�e du message (exact) que le compilo t'as envoy�, donc si tu peux nous �viter l'usage des boules de cristal ...

  8. #8
    Membre �clair� Avatar de elghadi_mohamed
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2005
    Messages
    227
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 227
    Par d�faut
    Citation Envoy� par toxcct
    elghadi quant � toi, quand tu dis :

    certes, si tu le dis, c'est que c'est surement vrai. mais nous de notre cot�, on n'a aucune id�e du message (exact) que le compilo t'as envoy�, donc si tu peux nous �viter l'usage des boules de cristal ...

    tu chercher le message tel qu'il est alors le voici :
    c:\documents and settings\administrateur\bureau\a.cpp(7) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is

    et bon appetit

  9. #9
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Citation Envoy� par toxcct
    enfin, il est pr�f�rable d'utiliser des m�thodes standard plutot que des appels sp�cifiques au systeme d'exploitation. en d'autres mots, system("pause") ne marchera que sous windows, alors qu'un appel a getch() marchera sur toutes les plateformes (en pensant bien sur a faire un #include<conio.h> pr�alable).
    Presque.
    conio est tout sauf portable. C'est un r�sidu des compilos Borland pour dos et windows.
    La fa�on portable, et C++, de faire une pause est donn�e dans la FAQ. Et ceci est un probl�me d'environnement de travail. Je n'ai jamais eu besoin de rajouter des pauses explicites.

    Sinon, elghadi_mohamed, pourrais-tu editer ton code ou le reposter pour nous montrer la version compl�te que tu cherches � compiler, STP.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  10. #10
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par d�faut
    Citation Envoy� par toxcct
    il est d�conseill� d'utiliser une using namespace ayant une port�e sur tout le module de traduction. il est pr�f�rable d'utikiser une telle directive dans une fonction ou dans un bloc interne a une fonction.
    �a, c'est un peu extr�me, ne trouves-tu pas?
    Du moment qu'on ne met pas de using namespace dans un header, on n'a pas vraiment de probl�mes...
    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.

  11. #11
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2003
    Messages
    3 549
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 3 549
    Par d�faut
    �a, c'est un peu extr�me, ne trouves-tu pas?
    Moi je suis plut�t d'accord.
    De mani�re g�n�rale, using namespace c'est � �viter. Si tu dois le faire, fais-le dans la port�e la plus petite possible.

  12. #12
    Membre chevronn�
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    D�tails du profil
    Informations personnelles :
    �ge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Par d�faut
    On peut avoir des probl�mes avec un using namespace partout. Le code suivante est relativement anodin :
    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
     
    #include <iostream>
     
    int distance(int const & from, int const & to)
    {
        return to - from;
    }
     
    int main()
    {
        using namespace std;
     
        int abc(0), xyz(0);
        cout << distance(abc, xyz);
     
        return 0;
    }
    gcc nous donne une superbe erreur concernant l'instanciation d'iterator_traits. D'o� vient-ce ? Tout simplement du fait que deux d�clarations de distance existent, celle pr�sente dans le fichier, et celle de std::distance, d�finie dans <utility> et incluses par le #include <iostream>. Le using namespace met la d�claration de std::distance dans le namespace "global", le compilo doit alors faire un choix et fait ici le mauvais.

    Je ne me prononcerai pas sur le caract�re standard de ce choix, ce qu'il faut souligner ici est la difficult� de diagnostiquer l'erreur de compilation due au using namespace. � moins de conna�tre parfaitement le contenu d'un namespace, ce qui est particuli�rement difficile pour std, mieux vaut s'abstenir d'utiliser des using namespace, o� que ce soit.

  13. #13
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par d�faut
    Euh...
    Un bon compilo n'est-il pas cens� g�n�rer une erreur "ambiguous call" ?
    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.

  14. #14
    Expert confirm�

    Inscrit en
    Novembre 2005
    Messages
    5 145
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par d�faut
    Citation Envoy� par M�dinoc
    Euh...
    Un bon compilo n'est-il pas cens� g�n�rer une erreur "ambiguous call" ?
    L'appel n'est pas ambigu: le nom import� par using dans le bloc masque le nom d�finit dans un scope englobant. C'est le point de roulious: � trop restreindre le scope du using, il importe des choses en masquant plut�t qu'en �tant ambigu.

    Personnellement, je n'utilise using que quand je d�sire que ce soit l'ADL qui trouve un nom, et j'utilise alors la forme using name dans le scope le plus restreint possible. Sinon je qualifie.

Discussions similaires

  1. Probleme avec string et variable.
    Par pierre987321 dans le forum Delphi
    R�ponses: 3
    Dernier message: 26/04/2007, 13h22
  2. probleme avec string
    Par krovomi dans le forum G�n�ral JavaScript
    R�ponses: 9
    Dernier message: 28/02/2007, 17h15
  3. Probleme avec string
    Par Liondd dans le forum Langage
    R�ponses: 11
    Dernier message: 29/12/2006, 19h02
  4. [RegEx]Probleme avec String.split
    Par sebastieng dans le forum Collection et Stream
    R�ponses: 3
    Dernier message: 09/02/2006, 21h24
  5. [Struts][logic:iterate] Probleme avec String
    Par julienOriano dans le forum Struts 1
    R�ponses: 7
    Dernier message: 15/06/2004, 09h39

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