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
- Cliquez sur ce lien. suivez les instructions pour découvrir le mot caché. - Forum Wii
- If exist ✓ - Forum Autoit / batch
- {Batch} IF NOT EXIST <mon folder> ne fonctionne pas ✓ - Forum Autoit / batch
- IF EXIST dans un ".bat" - Forum Programmation
- Polit wr30m watch instructions ✓ - Forum Accessoires & objets connectés
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...