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 :

cin suivi de getline


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Points : 37
    Points
    37
    Par défaut cin suivi de getline
    voila tous est dans le titre, je debute en C++ et je teste ce que je lis en meme temps (logique)
    Et je ne comprend pas pourquoi le getlin(cin,a) est sauté apres un cin


    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
    #include <iostream>
    #include <string>
     
    using namespace std;
    int main ()
    {
        string aa;
        cin>>aa;
        cout<<aa;    
        string b;                  //cette
        getline(cin,b);          // zone
        cout<<b<<"\n";        //est sauté
        string a;
        cin>>a;
        cout<<a<<"\n";    
        int n = b.length();
        cout<<n;
        system ("PAUSE");
        return 0;
    }

  2. #2
    Membre actif
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    189
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 189
    Points : 213
    Points
    213
    Par défaut
    Tu veux dire que b n'est pas affiché ? C'est normal : la ligne est commentée.

    PS : les balises code c'est pas mal.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    non, le commentaire c'est pour montrer la zone en question.
    en faite apres avoir afficher le premier cin, il passe directement au cin suivant sans s'occuper d'attendre que j'entre la chaine de caractere de getline.

    je voulais savoir donc comment y remedier.

  4. #4
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    euh je comprend pas ce que c'est
    en faite ce que je voudrai c'est que:
    il attend que je rentre un nombre ou une chaine (1er cin)
    puis une fois rentrer qu'il attende que je rentre ma deuxieme chaine , mais qui contients plusieurs mots(le getline)
    et pas qu'il saute le getline...

  6. #6
    Membre actif
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    189
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 189
    Points : 213
    Points
    213
    Par défaut
    Ok, mais as-tu essayé ce que propose Goten ?

  7. #7
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Ca va marché....

    Par contre en testant fait bien gaffe l'exemple de la faq est faux. streamsize fait partie de l'espace de nom std:: . (j'ai déjà notifié ça, ça doit être corrigé dans la prochaine version).
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 53
    Points : 37
    Points
    37
    Par défaut
    en faite, ce que je n'ai pas compris c'est, c'est quoi buffer ?
    je n'ai du tout compris ce que voulais montrer ton lien (je suis vraiment un gros debutant en C++)

    et tant que j'y suis, quel est la difference entre string a et std::string a

  9. #9
    Membre actif
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    189
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 189
    Points : 213
    Points
    213
    Par défaut
    Citation Envoyé par geek67 Voir le message
    en faite, ce que je n'ai pas compris c'est, c'est quoi buffer ?
    Un buffer c'est comme un une file : avec ton clavier tu fais rentrer des infos. Le lien explique comment vider le buffer. Ici tu dois le faire sinon le retour à la ligne est trouvé tout de suite par getline et donc tu lis rien.


    Citation Envoyé par geek67 Voir le message
    et tant que j'y suis, quel est la difference entre string a et std::string a
    Tout réside dans l'opérateur de résolution de portée "::" . En fait, string a n'existe pas sauf si tu dis explicitement * que le contenu de l'espace de nomage ( namespace ) std est accessible depuis l'espace globale. [ Il doit y avoir une explication plus compréhensible dans la FAQ ou dans un cours. ]

    * : avec using namespace std;

Discussions similaires

  1. Problème avec getline(cin, str)
    Par djoe43 dans le forum C++
    Réponses: 12
    Dernier message: 05/05/2010, 17h52
  2. Problème avec cin.getlin dans un for
    Par Carnat89 dans le forum Débuter
    Réponses: 2
    Dernier message: 02/07/2009, 21h09
  3. cin.getline et char * vide
    Par sawbo1 dans le forum SL & STL
    Réponses: 6
    Dernier message: 29/09/2006, 15h24
  4. Réponses: 1
    Dernier message: 21/08/2006, 19h17
  5. getline(cin,s) pas pris en compte ?
    Par FinalSpirit dans le forum SL & STL
    Réponses: 3
    Dernier message: 19/01/2006, 01h18

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