bonjour
quel est la difference entre %s et %c
dans le scanf
char c;
(ex: scanf("%c",&c");
scanf("%s",&c");
bonjour
quel est la difference entre %s et %c
dans le scanf
char c;
(ex: scanf("%c",&c");
scanf("%s",&c");
bonjour
provoque un depassement de memoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 char c; scanf ("%s", &c);
qu est ce que tu veut dire pas depassement de memoire
Jveux dire que quand tu donnes un specificateur %s, il faut prevoir une zone suffisament grande pour que scanf puisse y stoquer tous les caracteres de la chaine saisie (+ le caractere nul)
En l'occurence, "c" ne tient que sur 1 caractere, donc scanf va commencer à ecrire à l'adresse de c puis va continuer dans la memoire en faisant n'importe quoi
moi dans mon programme j'utilise une variable c pour faire un test
car c l'utilisateur qui entre o( oui) s'il veut continuer ou n sil veut arreter
donc j'utilise quoi?
Alors, utilise
Attention, ici c est un int (fgetc retourne int)
Code : Sélectionner tout - Visualiser dans une fenêtre à part c = fgetc(stdin);
tu veux bien m'expliquer le comportement de cette fonction dans le codeEnvoyé par Gruik
Pas suffisant. Pour un "o/n", il faut taperEnvoyé par Gruik
o<enter> ou n<enter>. Il faut donc 2 lectures, sinon, on se retrouve encore avec le problème du stdin non vide.
C'est pourquoi je préconise dans tous les cas d'utiliser fgets(), comme expliqué ici :
http://emmanuel-delahaye.developpez....tes.htm#saisie
http://emmanuel-delahaye.developpez....s.htm#fichiers
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 char line [4]; fgets(line, sizeof line, stdin); c = line[0]; /* ou *line */
A moins de rentrer 0.Envoyé par Gruik
![]()
Excellente question, je ne sais pas si il est possible d'écrire sur le flux "stdin" directement.Envoyé par Emmanuel Delahaye
Peut être en redirigeant depuis un fichier texte contenant un 0...Envoyé par seriousme
Code : Sélectionner tout - Visualiser dans une fenêtre à part $ myapp < zero.txt
%s pour lire une chaîne.
%c pour lire un caractère.
Donc, comprends ton erreur ici.Envoyé par brakeche
Comment tu fait tes scanf toi?Envoyé par brakeche
moi je fait plutot:Efin je pensse que c'est un erreur de phape...
Code : Sélectionner tout - Visualiser dans une fenêtre à part scanf("%c",&c);
"Prenez le temps d'aller lentement..."Envoyé par miron
Comme disait mon grand-père qui était toujours à l'heure :
"Quand tu es pressé, va lentement"
Et comment j'arrive a l'heure?Envoyé par Emmanuel Delahaye
![]()
Partager