prob avec scanf

prob avec scanf - C - Programmation

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 :cry:

Reply

Marsh Posté le 22-10-2010 à 23:21:06   

Reply

Marsh Posté le 22-10-2010 à 23:54:12    

faut jamais utiliser scanf pour des imput utilisateur. jamais.

Reply

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.

Reply

Marsh Posté le 23-10-2010 à 20:23:37    

il n'y pas d'autre solution que fgets???

Reply

Marsh 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;
 }

Reply

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  
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


 
Ça ne te choque pas de comparer un caractère avec un nombre flottant ?
 

Reply

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;
 }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed