Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1611 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [c] ya un truc que je capte po avec scanf et les char

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c] ya un truc que je capte po avec scanf et les char

n°249129
asphro
Posté le 19-11-2002 à 23:07:28  profilanswer
 

Code :
  1. int main(void)
  2. {
  3.       /*** declaration des  variables operande1, operateur, operande2 ***/
  4.       float res;
  5.       float op1,op2;
  6.       char op;
  7.       /*** on demande d'abord le permier nombre puis l operateur  puis le dernier nombre ***/
  8.       printf("\npremier nombre:" );
  9.       scanf("%f", &op1);
  10.       printf("\noperande:" );
  11.       scanf("%s", &op); <---- ici si je met %c il me demande pas mon caratére est passe directement a la suite pkoi ?
  12.       printf("deuxieme nombre:" );
  13.       scanf("%f", &op2);
  14.       res=calcul(op1,op2,op);
  15.       printf("resulat : %f\n", res);
  16.       return EXIT_SUCCESS;
  17. }

 
 
voila un prog banal, mais je comprend pas pkoi avec un scanf(%c, op) il passe directement a l instruction suivante, de plus quand je demande d afficher la variable op, c un retour a la ligne ki apparait !!!

mood
Publicité
Posté le 19-11-2002 à 23:07:28  profilanswer
 

n°249141
leirn
A.D.I.D.A.S.
Posté le 19-11-2002 à 23:17:04  profilanswer
 

pcq scanf premier du nom ne tiens pas comte du retour chariot de la fin du premier chiffre  
 
essai:
 

Code :
  1. int main(void)
  2. {
  3.      /*** declaration des  variables operande1, operateur, operande2 ***/
  4.      float res;
  5.      float op1,op2;
  6.      char op;
  7.      /*** on demande d'abord le permier nombre puis l operateur  puis le dernier nombre ***/
  8.      printf("\npremier nombre:" );
  9.      scanf("%f", &op1);
  10.      printf("\noperande:" );
  11.      scanf("\n%c", &op); <---- ici si je met %c il me demande pas mon caratére est passe directement a la suite pkoi ?
  12.      printf("deuxieme nombre:" );
  13.      scanf("\n%f", &op2);
  14.      res=calcul(op1,op2,op);
  15.      printf("resulat : %f\n", res);
  16.      return EXIT_SUCCESS;
  17. }


 
 
je c pas si c la methode propre mais ici ca marche ;)


Message édité par leirn le 19-11-2002 à 23:17:22

---------------
"Je brandirai une épée d'orichalque, je m'assouvirai sur des Templiers." | "Avec dans son sillage l'Ombre du Diable, Leirn appelait les morts pour une danse macabre et déchainaît les horreurs de la nuit..."
n°249147
asphro
Posté le 19-11-2002 à 23:22:20  profilanswer
 

ah oui ca marche thx  
 
mais je capte po pkoi enfin le concept de ce phénoméne !!!
 
 

n°249149
leirn
A.D.I.D.A.S.
Posté le 19-11-2002 à 23:25:15  profilanswer
 

asphro a écrit a écrit :

ah oui ca marche thx  
 
mais je capte po pkoi enfin le concept de ce phénoméne !!!
 
 




 
très honnetement moi non plus, mais g diagnostiker kil avait un \n de trop ds le buffer ;) (enfin ca c le pourkoi, mais scanf devrait le virer, ca ferai mieux)


---------------
"Je brandirai une épée d'orichalque, je m'assouvirai sur des Templiers." | "Avec dans son sillage l'Ombre du Diable, Leirn appelait les morts pour une danse macabre et déchainaît les horreurs de la nuit..."
n°249154
asphro
Posté le 19-11-2002 à 23:27:43  profilanswer
 

serieux je pige pas trop la !!
 
je reste perplexe la dessus !!
 
 
enfin peut-être qq'un va pouvoir me dire qu'elle en est vraiment la cause !!
 
 
enfin bon sinon thx now je connais la bidouille ;)

n°249156
leirn
A.D.I.D.A.S.
Posté le 19-11-2002 à 23:28:42  profilanswer
 

asphro a écrit a écrit :

serieux je pige pas trop la !!
 
je reste perplexe la dessus !!
 
 
enfin peut-être qq'un va pouvoir me dire qu'elle en est vraiment la cause !!
 
 
enfin bon sinon thx now je connais la bidouille ;)




 
si ta d'autre bidouille, je suis l'expert... :D


---------------
"Je brandirai une épée d'orichalque, je m'assouvirai sur des Templiers." | "Avec dans son sillage l'Ombre du Diable, Leirn appelait les morts pour une danse macabre et déchainaît les horreurs de la nuit..."
n°249175
leirn
A.D.I.D.A.S.
Posté le 20-11-2002 à 00:20:09  profilanswer
 

essai getc sinon


---------------
"Je brandirai une épée d'orichalque, je m'assouvirai sur des Templiers." | "Avec dans son sillage l'Ombre du Diable, Leirn appelait les morts pour une danse macabre et déchainaît les horreurs de la nuit..."
n°249223
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 20-11-2002 à 05:41:47  profilanswer
 

parce que le buffer contient '\n' qui passe dans c au scanf suivant. fo le vier en faisant une boucle


---------------
du bon usage de rand [C] / [C++]
n°249224
albino13
Against TCPA // Palladium
Posté le 20-11-2002 à 05:59:20  profilanswer
 

un flushall(); avant chaque saisie ca regle pas ce genre de probleme...? c p-e pas tres propre... :pt1cable:


---------------
[:zeitoon] HxC rulezzzzzzzzz
n°249226
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 20-11-2002 à 06:28:22  profilanswer
 

c po standard et ca veut rien dire de flusher un flux d'entrée


---------------
du bon usage de rand [C] / [C++]
mood
Publicité
Posté le 20-11-2002 à 06:28:22  profilanswer
 

n°249227
albino13
Against TCPA // Palladium
Posté le 20-11-2002 à 06:30:01  profilanswer
 

Taz@PPC a écrit a écrit :

c po standard et ca veut rien dire de flusher un flux d'entrée



:cry:  :heink: bah merde alors c'est ce qu'on nous apprends en cours... halala ces profs  :pfff:   :pfff:   :pfff:  
bah je vais continué a  :sleep: en cours alors [:m300a]


Message édité par albino13 le 20-11-2002 à 06:30:28

---------------
[:zeitoon] HxC rulezzzzzzzzz
n°249887
asphro
Posté le 20-11-2002 à 18:02:30  profilanswer
 

Taz@PPC a écrit a écrit :

parce que le buffer contient '\n' qui passe dans c au scanf suivant. fo le vier en faisant une boucle




 
ah ok !!!
thx pour l 'info

n°250379
Musaran
Cerveaulté
Posté le 21-11-2002 à 04:13:17  profilanswer
 

%f, %i, et %s demandent à scanf d'analyser la séquence d'entrée pour y reconnaitre quelquechose. Dès qu'il trouve un espace ou un \n, il s'arrête... et le laisse.
Il suffit donc de lui dire de manger le séparateur attendu: scanf("%f %i\n",...)%c prends un caractère quel qu'il soit, y compris \n.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°250589
leirn
A.D.I.D.A.S.
Posté le 21-11-2002 à 14:03:41  profilanswer
 

Musaran a écrit a écrit :

%f, %i, et %s demandent à scanf d'analyser la séquence d'entrée pour y reconnaitre quelquechose. Dès qu'il trouve un espace ou un \n, il s'arrête... et le laisse.
Il suffit donc de lui dire de manger le séparateur attendu: scanf("%f %i\n",...)%c prends un caractère quel qu'il soit, y compris \n.




 
g essayé en mettant le separateur a la fin du premier scanf, il passe jamais la main au second... ya k'en le mettant devant le second que ca passait


---------------
"Je brandirai une épée d'orichalque, je m'assouvirai sur des Templiers." | "Avec dans son sillage l'Ombre du Diable, Leirn appelait les morts pour une danse macabre et déchainaît les horreurs de la nuit..."
n°251195
mart
Posté le 22-11-2002 à 09:14:38  profilanswer
 

déclaration:fais un char op[20] ou un char *op et fais un calloc  
sur le nbre d'espace a reservé
 
apres scanf("%s", op)
sans le &
je dis ptete une connerie mais c ce que g compris au tp que je viens de faire :)

n°251197
mart
Posté le 22-11-2002 à 09:18:25  profilanswer
 

ah si c juste pr un operateur, dc 1 caractère: normal faut mettre %c et pas %s.
 
char op;
scanf("%c", &op);
ca te mets un caractère ds op
sinon, %s c'est une chaine de caractère, donc un tableau, dc un pointeur. donc tu le declares:
char op[dim];
scanf("%s", op);
 
ou  
char *op;
op=calloc(dim,sizeof(char));
scanf("%s",op);
 
ou dim est le nbre de caractere.
 
bon, chuis pas un expert.

n°251198
mart
Posté le 22-11-2002 à 09:19:54  profilanswer
 

bah vi c skil a fait leirn rien a voir avec le \n a mon avis


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [c] ya un truc que je capte po avec scanf et les char

 

Sujets relatifs
[truc de newbie :)] Que les tableau epouse la forme des images[JAVA] erreur de compilation que je capte pas ... [resolu]
un truc tt con mais.... raaaaaaaaah[C/C++] Copier un char* dans un char*? pas resolu-C'est pour ce soir:/
C truc a la con : c quoi char to int en C ?? merci[Delphi] Afficher l'heure sans faire un truc lourd...
[Analyse syntaxique] La, faut qu'on m'explique un truc... spapossible.[SCANF] Allouer la mémoire automatiquement ?
[info C] getchar ne get pas du tout un char 
Plus de sujets relatifs à : [c] ya un truc que je capte po avec scanf et les char


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR