Probleme de scanf [ C - Gros debutant ] - C++ - Programmation
Marsh Posté le 21-12-2002 à 17:19:21
>> warning C4101: 'b' : unreferenced local variable
'b' est une variable locale que tu n'as utilisé nulle part (tu l'as juste déclarée)
>> warning C4700: local variable 'a' used without having been initialized
il faut passer un pointeur à scanf : &a. en mettant a, tu donnes la valeur au lieu de son adresse. comme a n'a pas été initialisé, le compilo t'avertit.
Marsh Posté le 21-12-2002 à 17:29:05
le code correct est
Code :
|
Marsh Posté le 27-12-2002 à 12:24:43
je rajouterai que fflush(stdin) n'est pas admis par la norme ansi
Marsh Posté le 27-12-2002 à 12:27:58
xav14 a écrit : je rajouterai que fflush(stdin) n'est pas admis par la norme ansi |
déjà dit maintes fois. tout le monde pense que cette ligne est l'intruction ultime alors que j'ai déjà montré comment procéder proprement
certains y tiennent, ça leur donne l'impression que leur programme compilé avec leur bcc tourne mieux
les habitudes ont la vie dure
Marsh Posté le 27-12-2002 à 13:17:52
Taz@PPC a écrit : déjà dit maintes fois. tout le monde pense que cette ligne est l'intruction ultime alors que j'ai déjà montré comment procéder proprement |
hum par contre ...
j'ai honte de le dire mais ce sont les profs de licence info qui nous ont dit ca et a l'époque il n'avait donné aucune raison. alors pourquoi donc que c'est pas propre ?
Marsh Posté le 27-12-2002 à 13:23:51
par ce que :
- le fflush ca ne veut dire quelque chose que sur un flux de sortie (finaliser les ecritures bufferisées). sur un flux d'entrée ca ne veut rien dire: donc le langage ne définit pas le comportement. sur certains environnement, ca vide le buffer du flux dans le néant
- la bonne manière c'est de se faire une petite fonction
Code :
|
Marsh Posté le 21-12-2002 à 17:13:08
ca c mon programme :
#include <stdio.h>
main()
{
double a;
double b;
printf("saisissez un nombre : " );
fflush(stdin);
scanf("%d",a);
}
et le debogueur de me dit ca :
warning C4101: 'b' : unreferenced local variable
warning C4700: local variable 'a' used without having been initialized
Deja si k1k1 pouvait m expliquer ce truc
Ensuite qd je lance le programme bhe je saisie la valeur et qd j appuie sur enter bhe paf ca fait un erreur...
Bon je suis ultra debutant enprogramation ca doit pas etre une erreur bien difficile a trouver si quelqu un peut m aider je lui en serais tres reconnaissant
Merci par avance