RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 boucle infini

Forum : C
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ C

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM C

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
Marthyi
Nouveau membre
Avatar de Marthyi
Inscrit : 06/01/2006
Messages : 17
Message
#146834
Posté le 27/12/07 à 15:25

#include<stdio.h> int valeur() { int v=-2; while( !( v>=0 && v<10) ) { printf("\n Entrer v -> "); scanf("%d",&v); } return v; } int main() { int v; v=valeur(); printf("v-> %d\n", v); return 0; }


Bonjour,
Mon programme à pour objectif d'enregister un entier entre 0 et 10, 10 exlcu.
Lorsque je rentre un entier tout se passe bien mais si j'ai le malheur de taper un caractère le programme se met à boucler sans poser d'arrêt sur le scanf.
Merci d'avance pour vos remarques.

PS: je programme sous ubuntu.
__________________________
Loin de moi ce manichéïsme du choix épicurien face à la vie...

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

Czayfaboo
Co-Administrateur
Superviseur :
- Langages Dot.
Modérateur :
- CSharp (C#)
Chef de projet(s) :
- ID3.NET Library
- MoteurProg Work.

Avatar de Czayfaboo
Inscrit : 05/01/2005
Messages : 2853
Message
#146836
Posté le 27/12/07 à 16:00
Je fais plus de C depuis un bail... mais bon... ce que je ferais pour pouvoir identifier clairement le problème, j'enlèverai la boucle while et afficherait le résultat tapé... Tu tapes alors un caractère et tu essaies de voir à quoi çà ressemble tu pourras alors faire un test et savoir quelles types de valeurs rejeter en plus...

Sinon, plus simple je trouve... Tu enregistre un caractère et tu vérifies que c'est bien un entier qui a été tapé... Ca me parait être une meilleur solution... Moins de risques de boggues...
__________________________
Sujet résolu ? Pensez à mettre le tag Image
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Visiteur MP
Membre du club
Inscrit :
Messages : 1237
Message
#146855
Posté le 27/12/07 à 19:24
si tu veux éviter les bugs pour ton programme, il vaut mieux que tu utilises les char.
Tu testes la valeur en fonction du code ascii ;)

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

rainbow
Membre du club
Chef de projet(s) :
- IA savane
- Team MoteurProg

Avatar de rainbow
Inscrit : 26/05/2006
Messages : 937
Message
#146856
Posté le 27/12/07 à 19:25
c'était moiSmiley
__________________________
............ Curtis: RTS 3D ..............
......Image
........... TeamMoteurProg...........

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

vortex666
Modérateur :
- C & C++
- OpenGL
- Delphi
Chef de projet(s) :
- Vortez3DEngine

Avatar de vortex666
Inscrit : 20/09/2004
Messages : 483
Message
#146863
Posté le 27/12/07 à 20:37
C'est normal puisque si tu rentre un char, scanf va "passer par dessu" car tu lui demande de chercher un int, et non un char. (%d)

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

vortex666
Modérateur :
- C & C++
- OpenGL
- Delphi
Chef de projet(s) :
- Vortez3DEngine

Avatar de vortex666
Inscrit : 20/09/2004
Messages : 483
Message
#147455
Posté le 10/01/08 à 22:32
La meilleur technique serais de lire un charactere, l'enregistrer dans un char ou un BYTE, puis regarder si le char est entre 48 et 57(nb de 0 a 9). Si oui, pas de pb, sinon on recommence, voila.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

rainbow
Membre du club
Chef de projet(s) :
- IA savane
- Team MoteurProg

Avatar de rainbow
Inscrit : 26/05/2006
Messages : 937
Message
#147537
Posté le 13/01/08 à 10:23
Vortex dit :
La meilleur technique serais de lire un charactere, l'enregistrer dans un char ou un BYTE, puis regarder si le char est entre 48 et 57(nb de 0 a 9). Si oui, pas de pb, sinon on recommence, voila.

Je l'avais dis juste au dessus Smiley
__________________________
............ Curtis: RTS 3D ..............
......Image
........... TeamMoteurProg...........

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

vortex666
Modérateur :
- C & C++
- OpenGL
- Delphi
Chef de projet(s) :
- Vortez3DEngine

Avatar de vortex666
Inscrit : 20/09/2004
Messages : 483
Message
#147566
Posté le 14/01/08 à 00:59
lol, dsl, c'est juste quil y a tellement de nouveau post c'est temp ci que j'avais le gout de répondre a celui ci!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

rainbow
Membre du club
Chef de projet(s) :
- IA savane
- Team MoteurProg

Avatar de rainbow
Inscrit : 26/05/2006
Messages : 937
Message
#147608
Posté le 14/01/08 à 18:17
pas de problème xD
Alors Marthyi ? t'en est où ?
__________________________
............ Curtis: RTS 3D ..............
......Image
........... TeamMoteurProg...........

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Marthyi
Nouveau membre
Avatar de Marthyi
Inscrit : 06/01/2006
Messages : 17
Message
#147617
Posté le 14/01/08 à 19:52
Salut, merci de vos réponses.
Ce problème était en réalité un détail dans un projet de C pour mon école. J'ai entendu aussi parler de vider le buffer du clavier mais ni moi ni mes camarades non réussi à mettre cela en place...
Je stoppe pour le moments mes recherche sur ce problème mais dans l'absolu l'analyse par caratère et la plus robuste.

encore merci pour votre aide.
__________________________
Loin de moi ce manichéïsme du choix épicurien face à la vie...

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM C



    PAGES : [1] [2]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.