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.get et cin.ignore


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 19
    Points : 9
    Points
    9
    Par défaut cin.get et cin.ignore
    bonjour
    je débute dans l'apprentissage de C++
    quelqu'un pourrait il m'expliquer et à l'aide d'exemples simplement le fonctionnement et l'utilité de cin.get et cin.ignore
    j'ai regardé sur les forums ici et ailleurs mais je n'y comprends pas trop et l'utilité de ces deux commandes
    a l'avance merci
    cordialement

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    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 275
    Points : 10 985
    Points
    10 985
    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...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 19
    Points : 9
    Points
    9
    Par défaut cin.get cin.ignore
    suite à ta réponse et à ce que tu m'as conseillé de lire
    je comprends mal
    apparemment en mettant avant int main la formule : using namespace std;

    et si je mets avant de sortir cin.get; et cin. get;
    le prog fonctionne et si quand je l'exécute après qu'il m'ait affiché le cout demandé si je tape des lettres au clavier il tape les lettres que je tape au clavier et si après je tape entrée il m'affiche "Process return 0 (0*0) execution time: 3.294 s et' press any key to continue et si je retape entrée la console disparait
    par contre si je ne mets ni cin.get ni cin.ignore cela marche quand même et il m'affiche d'emblée en même temps que le contenu du cout la phrase "Process return 0 (0*0) execution time: 3.294 s et' press any key to continue
    il est dit que cin.get permet de saisir tous les caractères du string mais même si je ne le mets pas il les saisit tous
    en quoi consiste vider le buffer avec cin.ignore
    merci d'avance
    cordialement

  4. #4
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    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 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Où as-tu trouvé une référence à ces fonctions ?

    Retiens que tu n'en as pas besoin pour l'instant tant que tu n'enchaînes pas exactement un std::cin >> variable et un std::getline(std::cin, chaine), ou que tu ne cherches pas à émuler des pause, syndrome de "il faut apprendre à se servir de son environnement de développement plutôt"

    NB: pour les comprendre, il faut comprendre comment son foutus les flux. Dans un flux, il y a des trucs à consommer, un peu comme un tapis roulant à la caisse des supermarchés, où un seul article arrive à la fois. Entre deux articles, il peut y avoir des trous (espaces pour les flux)
    - get() consomme un seul élément (article, ou trous entre 2 articles)
    - getline() vide tout le tapis (articles et trous) et le stocke dans un coin (trous compris)
    - ignore() vide tout le tapis (articles et trous) et dégage le contenu à la poubelle
    - `>>` consomme le prochain article, les trous avant sont ignorés, et pour être plus précis: cela fait avancer le tapis jusqu'au prochain article, extrait l'article, et laisse le trou qui suit - -ce qui veut dire que la prochaine opération devra gérer que ce qui arrive est un trou.

    Tous attendent s'il n'y a rien de compatible sur le tapis -- i.e. `>>` attend n'importe quoi tant que ce n'est pas un trou, les autres attentent trous ou articles.
    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...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ignorer la casse pour un cin>>rep_utilisateur
    Par tallent_e dans le forum Boost
    Réponses: 3
    Dernier message: 18/02/2011, 19h21
  2. cin.getline et cin.ignore
    Par Ziarrow dans le forum C++
    Réponses: 6
    Dernier message: 28/08/2010, 18h46
  3. Probleme cin.get() C++
    Par Sleeping Lionheart dans le forum SL & STL
    Réponses: 2
    Dernier message: 26/11/2006, 20h07
  4. comment utiliser cin.get (c)
    Par peneloppe dans le forum SL & STL
    Réponses: 5
    Dernier message: 03/11/2006, 17h31
  5. probleme avec cin.ignore()
    Par Stany dans le forum SL & STL
    Réponses: 17
    Dernier message: 09/04/2005, 13h57

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