prob avec scanf - C - Programmation
Marsh Posté le 22-10-2010 à 23:54:12
faut jamais utiliser scanf pour des imput utilisateur. jamais.
Marsh Posté le 23-10-2010 à 00:32:36
Disons qu'on peut, mais cette fonction n'est pas simple du tout à utiliser.
Il faut border le pattern de lecture, qui devient vite illisible, tester le code retour, etc.
Au final, un bon vieux fgets avec interprétation de la chaine lue évite pas mal de tracasserie.
Marsh Posté le 23-10-2010 à 20:23:37
ReplyMarsh Posté le 23-10-2010 à 21:02:46
voici le code modifié mais ça ne marche encore pas
l'execution donne une saisie infini des chiffres que ce soit un zero ou pas
alors que je veux que la saisie s'arrete en tapant zero et enregistrer l'indice de la case de zero pour l'utiliser aprés.Corriger l'erreur svp
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
float tableau[100];
float c='\0';
i=0;
do
{
printf("entrer un chiffre :\n " );
scanf("%f",&c);
tableau[i]=c;
i++;
}
while(c='0');
if (c=='0')
{ p=i;
}
return(p);
system("pause" );
return 0;
}
Marsh Posté le 23-10-2010 à 21:17:38
marooh a écrit : il n'y pas d'autre solution que fgets??? |
Que reproches-tu à cette solution ?
marooh a écrit : voici le code modifié mais ça ne marche encore pas |
Ça ne te choque pas de comparer un caractère avec un nombre flottant ?
Marsh Posté le 23-10-2010 à 21:23:36
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,p;
float tableau[100];
float c;
i=0;
p=0;
do
{
printf("entrer un chiffre :\n " );
scanf("%f",&c);
tableau[i]=c;
i++;
}
while(c==0);
if (c==0)
p=i;
return(p);
system("pause" );
return 0;
}
Marsh Posté le 22-10-2010 à 23:21:06
bonsoir,
comment pourrai-je tester la valeur lue par scanf??
en d'autre terme je veux en remplissant un tableau savoir si la valeur entrée par l'utilisateur est un zéro alors exécuter un traitement sinon exécuter un autre traitement.
j'ai essayé avec if mais ça ne marche pas