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 régulier
    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
    Points : 70
    Points
    70
    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 sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    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 189
    Points : 17 141
    Points
    17 141
    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"; }.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Membre régulier
    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
    Points : 70
    Points
    70
    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 chevronné Avatar de gabriel21
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 : 507
    Points : 1 835
    Points
    1 835
    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 :
    "Les cons, ça ose tout. C'est même à ça qu'on les reconnaît." Michel Audiard - Les tontons flingueurs
    Site Web : https://www.admin-libre.fr

  5. #5
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    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 189
    Points : 17 141
    Points
    17 141
    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.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

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