Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

clemzz Achat - Vente Divers : bucheron-atomik et 29 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

lire un entier et ensuite un caractère ça ne fonctionne pas avec scanf

 
n°11785
daloula
Profil : Jeune recrue
Posté le 07-03-2005 à 17:11:49  profilanswer
 

Je travail avec visual studio 6.0.
j'ai exécuté le programme suivant mais ça ne fonctionne pas:
#include <stdio.h>
void main()
{
 
int i;
char x;
 
printf("donner un entier :" );
scanf("%d",&i);
printf("donner un caractère:" );
scanf("%c",&x);
}

 
quand j'execute j'obtient le résultat suivant :
 
donner un entier :9
donner un caractere: Press any key to continue

je ne comprend pas pq il ne e donne pas le temps d'écrire le caractère.
essayer le code et donnez moi la solution svp.
merciiiiiiiiiiiiiiiiiiiii

n°11787
P-Y
Profil : Vieux de la vieille
Posté le 07-03-2005 à 18:22:42  profilanswer
 

fais un scanf("%d", &x) et apres si tu veux vraiment un char tu cast ;)

n°11840
hoover
Mode Thermique
Profil : Membre
Posté le 10-03-2005 à 20:53:51  profilanswer
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(void)
  4. {
  5. char u[50];
  6. char x;
  7. int i;
  8. printf("donner un entier: " );
  9. gets(u);
  10. i = atoi(u);
  11. printf("entier: %d\n",i);
  12. printf("donner un caractere: " );
  13. fflush(stdout);
  14. x=fgetc(stdin);
  15. printf("caractere: %c\n",x);
  16. return 0;
  17. }


execution

Code :
  1. donner un entier: 12
  2. entier: 12
  3. donner un caractere: l
  4. caractere: l

n°11841
hoover
Mode Thermique
Profil : Membre
Posté le 10-03-2005 à 21:00:43  profilanswer
 

Pourquoi ca ne marche pas avec tes scanf :
 
Surement parceque scanf identifie les formats (%d etc) sur un buffer.
 
Donc là, tu tapes ton entier puis \n (retour chariot), scanf repère ton entier et le scanf suivant lit le '\n'....

n°11842
beOne
Profil: bas
Profil : Dinosaure
Posté le 10-03-2005 à 22:44:31  profilanswer
 

hoover a écrit :

Pourquoi ca ne marche pas avec tes scanf :
 
Surement parceque scanf identifie les formats (%d etc) sur un buffer.
 
Donc là, tu tapes ton entier puis \n (retour chariot), scanf repère ton entier et le scanf suivant lit le '\n'....


+1 un petit fflush et c'est bon :D


---------------
Software is like sex, it's better when it's free (L. Torvalds)
Great CoolTeam Member :ddr:
----------------
[url=http://forum.rue-montgallet.com/ruemontgallet/Aucoindelaruelle/sujet-21129.htm]La marmotte :foudtag: est un animal facetieux ... hein [g]Ch

Aller à :
Ajouter une réponse