Problèmes instructions if
Rack
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 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;
}
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
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 fairedo { charactere=getchar(); }while (charactere != '\n');
mais la condition n'est pas très satisfaisante, ce serait plutôt while (charactere == '\n'); -
Je pense plutôt qu'il voulait faire :
charactere=getchar(); while (getchar() != '\n');
Cela permettra de vider le buffer clavier.
Cdlt,