Problèmes instructions if
Rack
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je n'arrive pas à comprendre pourquoi, mais la console bloque après avoir exécuté l'instruction: var=lireCharactere(); dans la boucle do while
Je n'arrive pas à comprendre pourquoi, mais la console bloque après avoir exécuté l'instruction: var=lireCharactere(); dans la boucle do while
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> char lireCharactere(); int main() { char var; char reponse[10]; do{ var=lireCharactere(); if(var=='a'){printf("ce caractere est une voyelle");} else if(var=='z'){printf("ce caractere est une consonne");} printf("continuer?"); scanf("%s", reponse); }while(strcmp(reponse, "oui")==0); } char lireCharactere(){ char charactere; charactere=getchar(); while (charactere != '\n'); return charactere; }
A voir également:
- Problèmes instructions if
- If exist ✓ - Forum Autoit / batch
- IF EXIST dans un ".bat" - Forum Programmation
- See aka.ms/mcdriver for instructions ✓ - Forum Minecraft
- Cliquez sur ce lien. suivez les instructions pour découvrir le mot caché. - Forum Wii
- Dans cette vidéo, un texte apparaît furtivement. capturez l'image au bon moment (capture d'écran ou screenshot) pour avoir le temps de lire les instructions. vous pourrez essayer autant de fois que vous voulez. ✓ - Forum Windows
3 réponses
Essayes comme çà :
do
{
var=lireCharactere();
if(var=='a')
printf("ce caractere est une voyelle");
else if(var=='z')
printf("ce caractere est une consonne");
printf("continuer?");
scanf("%s", reponse);
}
Bonjour
Ce while est une boucle infinie. Dès que le caractère est différent de \n, on ne peut pas sortir du while.
Je suppose que tu voulais faire
mais la condition n'est pas très satisfaisante, ce serait plutôt while (charactere == '\n');
charactere=getchar(); while (charactere != '\n');
Ce while est une boucle infinie. Dès que le caractère est différent de \n, on ne peut pas sortir du while.
Je suppose que tu voulais faire
do { charactere=getchar(); }while (charactere != '\n');
mais la condition n'est pas très satisfaisante, ce serait plutôt while (charactere == '\n');
Ca ne fonctionnera pas...