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

Windows Discussion :

scanf bypassé dans une boucle do-while (Langage C)


Sujet :

Windows

  1. #1
    Magrak
    Invité(e)
    Par défaut scanf bypassé dans une boucle do-while (Langage C)
    Bonjours,
    J'aimerais connaitre la raison de ce "bypass".
    J'ai déja executé le programme en pas-à-pas détaillé (le scanf est bien géré mais ne permet pas à l'utilisateur de rentrer une valeur)
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main ()
    {
    	int test;
    	int Nbentre = 0;
    	const int MAX = 100, MIN = 1;
    	srand(time(NULL));
    	test = (rand() % (MAX - MIN + 1)) + MIN;
    
    	do
    	{
    		system("CLS");
    		printf(" ===== Jeu du plus ou moins ====");
    		printf("\n\nNombre choisit ? : (%d)\n", Nbentre);
    
    		scanf("%d", &Nbentre);    // <- Etape bypassé lors d'une insertion
                                                       // incorrect (grgr ou 3.25)
    		if (Nbentre > test)
    		{
    			printf("trop grand !\n");
    			system("PAUSE");
    		}
    		else if (Nbentre < test)
    		{
    			printf("trop petit !\n");
    			system("PAUSE");
    		}
    		else if ( Nbentre == test)
    		{
    			printf("tout juste !\n");
    		}
    		else
    		{
    			printf("Eh oh c'est quoi sa !!!\n");
    			system("PAUSE");
    		}
    	}while (Nbentre != test);
    	return 0;
    }
    merci

  2. #2
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Bonjour Magrak,

    Ton programme fonctionne ici... après compilation !
    Avec quel IDE travailles-tu ?
    Sur quel OS tentes-tu de le faire tourner ?

    ++

  3. #3
    Magrak
    Invité(e)
    Par défaut
    Le programme fonctionne, mais c'est lors d'une saisie incorrect qu'il rentre dans une boucle infini. Sans pause à l'étape du "scanf".

    J'ai utilisé "Bloodshed c++" et "Visual c++ Express", sous windows xp.

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/03/2009, 19h08
  2. probleme dans une boucle do while
    Par oldscrout dans le forum Débuter
    Réponses: 2
    Dernier message: 30/12/2008, 18h02
  3. scanf : utilisation dans une boucle de saisie
    Par kromartien dans le forum Bibliothèque standard
    Réponses: 4
    Dernier message: 04/12/2007, 00h50
  4. Réponses: 2
    Dernier message: 06/02/2007, 16h05
  5. probleme de recordset dans une boucle do while
    Par Shoryu dans le forum ASP
    Réponses: 18
    Dernier message: 05/07/2004, 16h30

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