Scanf("%c",&a);les caractere???????
tchsimons
Messages postés
207
Statut
Membre
-
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
Bonjour,
//c'est unprogramme sans interet ;mais sa resolution m'aide à faire autre chose.
#include<stdio.h>
void main()
{
int i,z;
char a;
for(i=0;i<5;i++)
{
printf("entrez un caractere");
scanf("%c",&a);
printf("entrez un nombre");
scanf("%d",&z);
}
}
/*******************************************/
en principe je doit pouvoir lire et ecrire un caractere puis un chiffre 5 fois avant la fi du programme.
Mais au 2eme passage dans la boucle,le systeme ne laisse plus l'ocasion d'entrer le caractere.je ne comprend pas ce qui ne va pas.Est ce qu'il ya qeulqeu chose d'omis ouqeu je ne metrise pas?
j'ai remplace scanf par getc puis getch() Lememe resultat est affiche. aidez moi je dioit utiliser un principe semùblable pour recuperer les char et les int pour les affecter a d'autres variables.. mon compilateur est le borland c++
//c'est unprogramme sans interet ;mais sa resolution m'aide à faire autre chose.
#include<stdio.h>
void main()
{
int i,z;
char a;
for(i=0;i<5;i++)
{
printf("entrez un caractere");
scanf("%c",&a);
printf("entrez un nombre");
scanf("%d",&z);
}
}
/*******************************************/
en principe je doit pouvoir lire et ecrire un caractere puis un chiffre 5 fois avant la fi du programme.
Mais au 2eme passage dans la boucle,le systeme ne laisse plus l'ocasion d'entrer le caractere.je ne comprend pas ce qui ne va pas.Est ce qu'il ya qeulqeu chose d'omis ouqeu je ne metrise pas?
j'ai remplace scanf par getc puis getch() Lememe resultat est affiche. aidez moi je dioit utiliser un principe semùblable pour recuperer les char et les int pour les affecter a d'autres variables.. mon compilateur est le borland c++
A voir également:
- Scanf caractere c
- Caractère spéciaux - Guide
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
- Caractere speciaux mac - Guide
1 réponse
Salut,
Pour lire un caractère depuis clavier utilise plutôt getchar.
Après avoir écrit un nombre entier un caractère saute de ligne '\n' reste dans le buffer qui est lui par le suivant getchar
donc au prochain passage i=1 z contiendra ce caractère qui traine.
Fait plutôt comme ça
Pour lire un caractère depuis clavier utilise plutôt getchar.
Après avoir écrit un nombre entier un caractère saute de ligne '\n' reste dans le buffer qui est lui par le suivant getchar
donc au prochain passage i=1 z contiendra ce caractère qui traine.
Fait plutôt comme ça
lami20j@debian:~/trash$ cat ccm31_ecrirecaract.c
#include<stdio.h>
int main()
{
int i,z;
char a;
for(i=0;i<5;i++)
{
printf("entrez un caractere : ");
a=getchar();//scanf("%c",&a);
printf("entrez un nombre : ");
scanf("%d",&z);
getchar();
printf("a = %c et z = %d\n",a,z);
}
return 0;
}
Voici le résultatlami20j@debian:~/trash$ gcc ccm31_ecrirecaract.c lami20j@debian:~/trash$ ./a.out entrez un caracterea entrez un nombre5 entrez un caractereentrez un nombre^C lami20j@debian:~/trash$ vi ccm31_ecrirecaract.c lami20j@debian:~/trash$ gcc ccm31_ecrirecaract.c lami20j@debian:~/trash$ ./a.out entrez un caractere : a entrez un nombre : 5 a = a et z = 5 entrez un caractere : b entrez un nombre : 6 a = b et z = 6 entrez un caractere : c entrez un nombre : 8 a = c et z = 8 entrez un caractere : e entrez un nombre : 9 a = e et z = 9 entrez un caractere : p entrez un nombre : 10 a = p et z = 10