ya un truc que je capte po avec scanf et les char [c] - C++ - Programmation
Marsh Posté le 19-11-2002 à 23:17:04
pcq scanf premier du nom ne tiens pas comte du retour chariot de la fin du premier chiffre
essai:
Code :
|
je c pas si c la methode propre mais ici ca marche
Marsh Posté le 19-11-2002 à 23:22:20
ah oui ca marche thx
mais je capte po pkoi enfin le concept de ce phénoméne !!!
Marsh Posté le 19-11-2002 à 23:25:15
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)
Marsh Posté le 19-11-2002 à 23:27:43
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
Marsh Posté le 19-11-2002 à 23:28:42
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...
Marsh Posté le 20-11-2002 à 00:20:09
essai getc sinon
Marsh Posté le 20-11-2002 à 05:59:20
un flushall(); avant chaque saisie ca regle pas ce genre de probleme...? c p-e pas tres propre...
Marsh Posté le 20-11-2002 à 06:30:01
Taz@PPC a écrit a écrit : c po standard et ca veut rien dire de flusher un flux d'entrée |
bah merde alors c'est ce qu'on nous apprends en cours... halala ces profs
bah je vais continué a en cours alors
Marsh Posté le 20-11-2002 à 18:02:30
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
Marsh Posté le 21-11-2002 à 04:13:17
%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.
Marsh Posté le 21-11-2002 à 14:03:41
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
Marsh Posté le 22-11-2002 à 09:14:38
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
Marsh Posté le 22-11-2002 à 09:18:25
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.
Marsh Posté le 22-11-2002 à 09:19:54
bah vi c skil a fait leirn rien a voir avec le \n a mon avis
Marsh Posté le 19-11-2002 à 23:07:28
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 !!!