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;
}
A voir également:
- Problèmes instructions if
- Instructions pour diviser un pdf en pages séparées - Guide
- Cliquez sur ce lien. suivez les instructions pour découvrir le mot caché. - Forum Graphisme
- CLIQUEZ Mes Manettes se décharge plus vite HELP CLIQUEZ LA HELP - Forum Wii
- Polit wr30m watch instructions ✓ - Forum Accessoires & objets connectés
- 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
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...