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 ne fonctionne pas


Sujet :

C++

  1. #1
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Par défaut cin ne fonctionne pas
    Bonjour je commence mon premier programme en C++ mais j'ai un problème de lecture avec cin.
    En exécutant le programme la chaine "Quel âge avez-vous ?" est affichée et le curseur est affiché pour saisir l'âge utilisateur mais rien n'est saisi malgré que je tape un entier. Merci de m'aider à résoudre ce problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <iostream>
    using namespace std;
    int main()
    {
        cout << "Quel age avez-vous ?" << endl;
        int ageUtilisateur; //une case mémoire pour stocker un entier
        cin >> ageUtilisateur; //On fait entrer un nombre dans cette case
        cout << "Vous avez " << ageUtilisateur << " ans !" <<  endl; //affichage
        return 0;
    }

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Bonjour

    As-tu validé ta saisie en appuyant sur "entrée"?

    Pourquoi cette question? Voici un résumé superficiel.

    De base, std::cin lit le "flux d'entrée standard", c'est à dire (plus ou moins) le clavier, tel que présenté par le système (en l'occurence le terminal).
    Or, la plus du temps, ce flux d'entrée est "bufferisé" ("buffered"), c'est à dire qu'il n'est effectivement accessible que lorsque l'utilisateur a fini une ligne.


    Par ailleurs, mais ce n'est pas le symptome que tu décris, comme tout flux d'entrée, il est possible que std::cin ne parviennent pas à lire. Dans un vrai programme, il faudrait vérifier cette réussite. Par exemple avec if(!std:cin) { std::cout << "un problème est survenu.\n"; }.

  3. #3
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Par défaut
    Bonjour, le problème est que même en tapant sur le clavier pour saisir le contenu de la variable ageUtilisateur rien n'est saisi

  4. #4
    Membre Expert Avatar de gabriel21
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2007
    Messages : 548
    Par défaut
    Ton programme fonctionne. Testé avec g++ sur une machine Linux
    Je te déconseille d'utiliser "using namespace std;" surtout si tu débutes. Certes il faut que tu modifies ton code en rajoutant std:: devant tes fonctions, mais tu prendras de bonnes habitudes pour la suite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <iostream>
    int main()
    {
        std::cout << "Quel age avez-vous ?" << std::endl;
        int ageUtilisateur; //une case mémoire pour stocker un entier
        std::cin >> ageUtilisateur; //On fait entrer un nombre dans cette case
        std::cout << "Vous avez " << ageUtilisateur << " ans !" <<  std::endl; //affichage
        return 0;
    }
    Pour pouvoir t'aider, il va falloir que tu nous en dise un peu plus sur ta plateforme de développement:
    • OS :
    • EDI :
    • Compilateur :

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    A tout hasard, une autre idée me vient.
    Tu serais sur Windows, avec un IDE, et ton programme ferme la console a peine celle-ci a affiché le message, et tu ne vois pas ce dernier?
    Je n'ai pas solution, mais le problème est classique.

    Si c'est bien ca, cherche "IDE how to keep the console opened" (avec le nom de ton IDE) et n'utilise surtout pas system("pause");.
    Il faut régler ton IDE pour qu'il laisse la fenetre ouverte.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/01/2004, 11h14
  2. [FP]Writeln ne fonctionne pas !
    Par néo333 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 01/11/2003, 23h47
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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