Retour à l'accueil
Accueil Aide Rechercher Calendrier Identifiez-vous Inscrivez-vous
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
25 Août 2019 à 01:17

Connexion avec identifiant, mot de passe et durée de la session
Règlement | Grades du forum | L'équipe de modération | Album photo | Chat
Rechercher:     avancée
Forums Zelda Solarus  |  Jeux amateurs  |  Programmation  |  Topic: [C++] Boucle qui n'en finit pas 0 Membres et 1 Invité sur ce sujet.
Pages: [1] Imprimer
Auteur Sujet: [C++] Boucle qui n'en finit pas  (Lu 1408 fois)
compositeur
Zora
*
Offline Offline

Messages: 978



Courriel
« le: 22 Mars 2012 à 20:02 »

Salut à tous  !
J'ai voulu tester dans une petite fonction main une saisie sécurisée, pour l'exemple, j'ai voulu faire rentrer à l'utilisateur un nombre, et seulement un nombre. Voici à quoi ressemble mon code :
Code: [Select]
#include <iostream>
using namespace std;

int main()
{
    int saisie = 0;
    do
    {
        cout<<"veuillez saisir un nombre \n";
        cin.clear();
        cin>>saisie;
    }
    while(cin.fail());
    return 0;
}


Lorsque je rentre un nombre, tout se passe bien, mais lorsque je rentre autre chose, comme un caractère par exemple, la phrase "veuillez saisir un nombre" s'affiche en boucle sans me laissez saisir quoi que ce soit.
Journalisée
Neo2
Sheikah
*
Offline Offline

Messages: 4 537



Courriel
« Répondre #1 le: 22 Mars 2012 à 20:25 »

Essaye de rajouter un petit "cin.ignore(std::numeric_limits<int>::max(),'\n');" dans ta boucle.
Journalisée
compositeur
Zora
*
Offline Offline

Messages: 978



Courriel
« Répondre #2 le: 22 Mars 2012 à 20:45 »

Tout fonctionne grâce à cette ligne, peut on m'expliquer le fonctionnement de cette magie noire ?
Journalisée
Noxneo
Guest


Courriel
« Répondre #3 le: 23 Juin 2012 à 20:11 »

Cette ligne dit à std::cin d'ignorer toute saisie sauf les entiers inférieurs à MAX_INT (std::numeric_limits<int>::max()) et les retours à la ligne ('\n')
Pour plus d'infos cf la doc de std::cin

Oui je rattrape tous mes topics 6 mois plus tard :$
Journalisée
Pages: [1] Imprimer 
Forums Zelda Solarus  |  Jeux amateurs  |  Programmation  |  Topic: [C++] Boucle qui n'en finit pas
Aller à:  

Propulsé par MySQL Propulsé par PHP Powered by SMF 2.0.15 | SMF © 2006, Simple Machines LLC XHTML 1.0 Transitionnel valide ! CSS valide !
Zelda Solarus 2009Skin par Eidarloy
Solarus-Games