Problèmes instructions if
Rack
-
fiddy Messages postés 11653 Statut Contributeur -
fiddy Messages postés 11653 Statut Contributeur -
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
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...