Problème de lecture de caractère en C

Fermé
Yakurena - 30 sept. 2004 à 12:02
 Jolkdarr - 30 sept. 2004 à 22:52
Rebonjour,
j'ai encore un problème :
si je fais une première lecture de variable(une chaine de caractères) et que je veux lire ensuite un caractère,le programme continue à s'éxécuter après la première lecture sans me laisser entrer le caractère au clavier.
Cad ,avec le programme suivant:
printf("entrez une chaine : ");
scanf("%s",chaine);
printf("entrez un caractère : ");
scanf("%c",&caractere);
printf("fin du programme");

En execution,cela donne:
entrez une chaine : toto (tapé au clavier)
entrez un caractère : fin du programme

Quel est le problème et comment le résoudre?
Merci d'avance.
A voir également:

3 réponses

Hello !

Si tu veux comprendre ce qui se passe, compare avec le programme ci-dessous :
#include <stdio.h>

int main()
{
	char Chaine[50];
	char Caractere;
	
	printf("entrez une chaine : ");
	scanf("%s",Chaine);
	printf("entrez un caractère : ");
	scanf("\n%c",&Caractere);
	printf("fin du programme %c", Caractere); 
}

ou
       scanf(" %c",&Caractere);

Take care !
2
salut,
ca me rappelle mes debut en C
tiens , tu fais en avant d'excuter ton bout de code de lecture de chaines un
flush();
ou
flushall();<

cela te permet de liberer le tampon
je pense que ca devra aller.
Courage a toi
@+
0
Salut,

essaye ca:
char c;
char str[50];

fflush(stdout);
printf("entrez une chaine puis valider par <entrée> : "); 
c=getchar(); 
fflush(stdout);
printf("entrez un caractère : "); 
gets(str); 
printf("fin du programme"); 


Pour afficher les résultat sur la sortie standard:
c=getchar(); ------> putchar(c)
gets(str);------> puts(str)
0