IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Probleme avec WHILE


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 213
    Par défaut Probleme avec WHILE
    Voila, j'ai un petit problème avec une boucle WHILE.

    Avec ce programme, je lis un fichier texte et je verifie que je trouve bien la chaine de caractère saisie, et dans le cas ou il ne trouve pas je souhaite recommencer jusqu'à le trouver.

    Avec ce programme, si à la premiere demande j'indique le bon filtre, pas de probleme il trouve.

    Si par contre, je lui donne un mauvais filtre en premier, j'ai beau rentré un bon filtre par la suite, il ne le trouve jamais.

    Si je ne ss pas clair n'hesitez pas a me le dire!!!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    * fichier2.c */
    #include <stdio.h>
    #include <string.h>
     
    void TestFiltre ()
    {
       FILE *TXT = fopen ("fichier.txt","r");
     
    char filtre[50];
    int filter;
     
    printf("Quel fltre voulez vous appliquer?\n");
    gets(filtre);
    printf("\n");
    printf("Le filtre souhaite est: %s\n\n", filtre);
    printf("Test de validite.........\n\n");
     
    while (filter!=1)
    {
     
       if (TXT != NULL) /* Si le fichier est ouvert*/
       {
         char ligne[50];
     
    while (fgets (ligne, sizeof ligne, TXT) != NULL)     /* lecture des lignes */
    {
     
    	if	(strstr (ligne , filtre) != 0)		/*Condition pour arretter la boucle: retrouver le filtre dans le .txt*/
    		{			
    			printf ("Ce filtre est valide\n"); /* filtre trouvé*/
    			fclose (TXT);				/* fermeture du fichier texte*/
    		}	
    	filter=1;
    }
     
    if	(strstr (ligne , filtre) == 0)			/* filtre non trouvé*/
    {printf ("Ce filtre est non valide, Recommencez!! \n\n");
    filtre[0]='\0';
    }
    filter=0;
     
     
    gets(filtre);
       }
       else
       {
          printf ("Erreur d'ouverture du fichier\n");
    	  filter=0;
       }
     
     //  return 0;
     
    }
    }
     
    void main ()
     
    {
    	TestFiltre();
    }

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Quelques remarques:

    - Tu as oublié un '/' au début du fichier

    Ta boucle interne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    while (fgets (ligne, sizeof ligne, TXT) != NULL)     /* lecture des lignes */
    {
     
       if   (strstr (ligne , filtre) != 0)      /*Condition pour arretter la boucle: retrouver le filtre dans le .txt*/
          {         
             printf ("Ce filtre est valide\n"); /* filtre trouvé*/
             fclose (TXT);            /* fermeture du fichier texte*/
          }   
       filter=1;
    }
    - Si tu trouves le filtre, tu fermes le fichier et tu continues à tenter de lire dedans... Bien que cela ne soit pas grave (fgets rendra NULL), ce n'est pas très propre...

    - Je ne vois pas l'utilité de ta variable filter. Elle est mise à 1 ici et remise à 0 plus loin. Au final, ta boucle englobante n'aura jamais filter==1.

    - Peu importe si tu trouves un bon filtre, tu vas en demander un autre, est-ce normal?

    - Et enfin, pour répondre à ta question: Lorsque tu lis dans un fichier et que tu as tout lu, qui a dit qu'il revenait au début du fichier pour la prochaine lecture?

    Tu peux utiliser la fonction rewind/fseek pour cela.

    Jc

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 213
    Par défaut
    En fait quand mon filtre est trouvé je mets filter=1 ce qui me permet de sortir de la boucle.

    Si ce n'est pas le cas, je met filter=0, comme ca je me dis que je rerentre ds la boucle.

    Avant d'y rerentrer et de resaisir une nouvelle chaine de caractère, je vide la derniere avec filtre[0]='\0';

    Je comprend pas why ca marche pas!!!

    J'ai modifier le code mais en vain...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    while (fgets (ligne, sizeof ligne, TXT) != NULL)     /* lecture des lignes */
    {
     
    	if	(strstr (ligne , filtre) != 0)		/*Condition pour arretter la boucle: retrouver le filtre dans le .txt*/
    		{			
    			printf ("Ce filtre est valide\n"); /* filtre trouvé*/
    			fclose (TXT);				/* fermeture du fichier texte*/
    		}	
    	filter=1;
    }
     
    if	(strstr (ligne , filtre) == 0)			/* filtre non trouvé*/
    {printf ("Ce filtre est non valide, Recommencez!! \n\n");
    filtre[0]='\0';
    filter=0;
    }

  4. #4
    Membre chevronné Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Par défaut
    Ca ne serait pas plutot ca qu'il faudrait faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    while (fichier==0 && fgets (ligne, sizeof ligne, TXT) != NULL)     /* lecture des lignes */
    {
       if (strstr (ligne , filtre) != 0)	/*Cond pour arreter la boucle*/
       {			
            printf ("Ce filtre est valide\n"); /* filtre trouvé*/
            fclose (TXT);				/* fermeture du fichier texte*/
     
            filter=1;
       }
       else
       {
           /* filtre non trouvé*/
           printf ("Ce filtre est non valide, Recommencez!! \n\n");
           filtre[0]='\0';
           filter=0;
       }
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 213
    Par défaut
    J'ai tjrs un probleme avec le code suivant:

    J'ai essayer pas mal de combines différentes mais je n'arrive tjrs pas à le faire fonctionner correctement.

    Si je ne rentre pas la bonne chaine de caractère à la prmiere occurence, il ne le trouve jamais .

    Si quelqu'un a deja fait ca..... ca serai cool qui m'eclaire sur mon erreur.....


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    #include <stdio.h>
    #include <string.h>
     
    void TestFiltre ()
    {
       FILE *TXT = fopen ("fichier.txt","r");
     
    char filtre[50];
    int filter;
     
    printf("Quel fltre voulez vous appliquer?\n");
    gets(filtre);
    printf("\n");
    printf("Le filtre souhaite est: %s\n\n", filtre);
    printf("Test de validite.........\n\n");
     
     
     
       if (TXT != NULL) /* Si le fichier est ouvert*/
       {
         char ligne[50];
     
    while (filter!=1)
    {
     
    while (fgets (ligne, sizeof ligne, TXT) != NULL)     /* lecture des lignes */
    {
     
    	if	(strstr (ligne , filtre) != 0)		/*Condition pour arretter la boucle: retrouver le filtre dans le .txt*/
    		{			
    			printf ("Ce filtre est valide\n"); /* filtre trouvé*/
    			fclose (TXT);				/* fermeture du fichier texte*/
    			filter=1;
    		}	
    }
     
    	if	(strstr (ligne , filtre) == 0)			/* filtre non trouvé*/
    		{
    			printf ("Ce filtre est non valide, Recommencez!! \n\n");
    			filtre[0]='\0';
    			filter=0;
     
    		}
     
    gets(filtre);
    }
     
     
       }
       else
       {
          printf ("Erreur d'ouverture du fichier\n");
    	  filter=0;
       }
     
     //  return 0;
     
    }
     
    void main ()
     
    {
     
    	TestFiltre();
    }

  6. #6
    Membre chevronné Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Par défaut
    Citation Envoyé par niglo
    Ca ne serait pas plutot ca qu'il faudrait faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    while (fichier==0 && fgets (ligne, sizeof ligne, TXT) != NULL)     /* lecture des lignes */
    {
       if (strstr (ligne , filtre) != 0)	/*Cond pour arreter la boucle*/
       {			
            printf ("Ce filtre est valide\n"); /* filtre trouvé*/
            fclose (TXT);				/* fermeture du fichier texte*/
     
            filter=1;
       }
       else
       {
           /* filtre non trouvé*/
           printf ("Ce filtre est non valide, Recommencez!! \n\n");
           filtre[0]='\0';
           filter=0;
       }
    }
    Tu as essayé ce code ?
    Normalement, dès qu'il a trouvé ton filtre (filter = 1), il sort de la boucle grâce à la première condition if ( filter == 0 && ...)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 213
    Par défaut
    Oui j'ai testé ce code et cela ne marche pas non plus...

    Ca parait simple mais bon..........

    Pas tant que ca en fait!!

    Je vais perseverer

  8. #8
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par beb30
    Oui j'ai testé ce code et cela ne marche pas non plus...

    Ca parait simple mais bon..........

    Pas tant que ca en fait!!

    Je vais perseverer
    Ok, en utilisant fgets, un '\n' sera ajouté à la fin de la chaîne (s'il y a la place). Il faudra donc l'enlever pour s'en servir dans la recherche dans le texte, est-ce que tu fais au moins ça?

    Sinon, montre ta dernière version et sans la fonction gets!

    Jc

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 213
    Par défaut
    voila la derniere version....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    #include <stdio.h> 
    #include <string.h> 
    #define Filtre_LEN 100
     
    void TestFiltre () 
    { 
       FILE *TXT = fopen ("fichier.txt","r"); 
     
    char filtre[50]; 
    int filter; 
     
    printf("Quel fltre voulez vous appliquer?\n"); 
    fgets(filtre,Filtre_LEN,stdin);
    printf("\n"); 
    printf("Le filtre souhaite est: %s\n\n", filtre); 
    printf("Test de validite.........\n\n"); 
     
     
     
       if (TXT != NULL) /* Si le fichier est ouvert*/ 
       { 
         char ligne[50]; 
     
    while (filter!=1) 
    { 
     
    while (fgets (ligne, sizeof ligne, TXT) != NULL)     /* lecture des lignes */ 
    { 
     
       if   (strstr (ligne , filtre) != 0)      /*Condition pour arretter la boucle: retrouver le filtre dans le .txt*/ 
          {          
             printf ("Ce filtre est valide\n"); /* filtre trouvé*/ 
             fclose (TXT);            /* fermeture du fichier texte*/ 
             filter=1; 
          }    
    } 
     
       if   (strstr (ligne , filtre) == 0)         /* filtre non trouvé*/ 
          { 
             printf ("Ce filtre est non valide, Recommencez!! \n\n"); 
             filtre[0]='\0'; 
             filter=0; 
     
          } 
    fflush(stdin); 
    fgets(filtre,Filtre_LEN,stdin);
    } 
     
     
       } 
       else 
       { 
          printf ("Erreur d'ouverture du fichier\n"); 
         filter=0; 
       } 
     
     //  return 0; 
     
    } 
     
    void main () 
     
    { 
     
       TestFiltre(); 
    }

  10. #10
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Bon y a encore des erreurs par rapport à des remarques précédentes et d'autres remarques s'ajouteront... Mais c'est déjà un peu mieux

    Voici les remarques que j'ai donné au début de ce post:

    - Si tu trouves le filtre, tu fermes le fichier et tu continues à tenter de lire dedans... Bien que cela ne soit pas grave (fgets rendra NULL), ce n'est pas très propre...
    - Peu importe si tu trouves un bon filtre, tu vas en demander un autre, est-ce normal?
    C'est toujours le cas, peu importe le résultat de ton if, tu feras:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fgets(filtre,Filtre_LEN,stdin);
    - Et enfin, pour répondre à ta question: Lorsque tu lis dans un fichier et que tu as tout lu, qui a dit qu'il revenait au début du fichier pour la prochaine lecture?
    Tu peux utiliser la fonction rewind/fseek pour cela.
    C'est toujours d'actualité... Tu tentes de recommencer à lire le fichier sans demander au progamme de recommencer la lecture... Comment veux-tu qu'il le sache?

    Enfin, voici d'autres remarques:

    Erreurs graves:
    - Tu déclares ton tableau filtre comme ceci:
    mais après tu demandes à fgets de le remplir et tu dis à la fonction que le tabeau a une taille de Filtre_LEN (qui est définie à 100...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fgets(filtre,Filtre_LEN,stdin);
    - Tu n'enlèves pas le '\n' à la fin de la chaîne récupérée par fgets, c'est donc logique qu'il ne le trouves pas...
    Exemple: si tu rentres "bon" alors dans ton tableau tu auras "bon\n"...

    - Tu tentes de lire un fichier qui est fermé. Je le considère tout de même comme une erreur grave bien que fgets le gère en interne...

    - Tu fais un fflush de stdin, c'est un flux entrant...
    - Ta déclaration de main est:
    or, cela devrait être
    Remarques:
    - Les macros sont généralement définie entièrement en majuscule mais les variables ne le sont pas.
    - Ton indentation rend la lecture difficile...

    Voilà, bonne correction ,
    Jc

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 213
    Par défaut
    ok ca fait bocoup de truc a revoir alors....!!!

    Bon je vais faire les modifs et je reviendrai donner des news..

    Merci

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 213
    Par défaut
    je reviens a la charge avec mon problemeque j'ai tjrs pas résolu...

    j'ai tenté un nouveau truc car apparenment mon dernier petit pgm présenté pas mal de probleme....

    en voila un autre qui ne marche pas mieux...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    #include <stdio.h>
    #include <string.h> 
    #define Filtre_LEN 100
     
     
    FILE *file; 
    char list[10000];
    char filtre[10000];
     
     
    int lecture(char filtre[]) 
    { 
    char *pdest;
     
     
      if((file = fopen("fichier.txt", "r")) != NULL) 
      { 
        while (!feof(file)) 
    	{
    fread( list, sizeof( char ), 10000, file );
    printf("%s", list);
    printf("%s", filtre);
    pdest = strstr( list, filtre );
     
    if ( pdest != NULL )
    { return 1;}
       else
       { return 0;}
    	}
      }
    }
     
     
    int saisi()
    {
    //fflush(stdin); 
    printf("Quel fltre voulez vous appliquer?\n");
    fgets(filtre,Filtre_LEN,stdin);	
    return 0;
    }
     
     
    main()
     
    {
    do
    {
    saisi();
    lecture(filtre);
    }
    while (lecture(filtre) != 1);
    return 0;
     
    }
    En fait celui marche tres bien si je zape la partie saisie. si j'impose un Il fonctionne bien

    Bizarre

  13. #13
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Aller, encore une fois:

    c'est
    et non
    Ensuite, est-ce que deux appels à lecture est une bonne idée?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    lecture(filtre);
    }
    while (lecture(filtre) != 1);
    Après, dans la fonction saisie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fgets(filtre,Filtre_LEN,stdin);
    A quoi ça sert d'avoir un tableau de 10000 caractères si tu ne demandes que 100?

    Et encore une fois:

    Et est-ce que tu enlèves le '\n' à la fin du filtre? Est-ce nécessaire ou non pour ton exemple?

    Enfin, c'est pas une bonne idée cette utilisation de variables globales... Cela va te jouer des tours un jour...

    Jc

  14. #14
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par beb30
    je reviens a la charge avec mon problemeque j'ai tjrs pas résolu...

    j'ai tenté un nouveau truc car apparenment mon dernier petit pgm présenté pas mal de probleme....

    en voila un autre qui ne marche pas mieux...
    Attention aux globales. Non seulement elles sont inutiles, mais elles pourraient induire un comportement indéfini.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Compiling: main.c
    main.c:17: warning: declaration of 'filtre' shadows a global declaration
    main.c:14: warning: shadowed declaration is here
    main.c:18: warning: no previous prototype for 'lecture'
    main.c:45: warning: function declaration isn't a prototype
    main.c:55: warning: return type defaults to `int'
    main.c: In function `lecture':
    main.c:41: warning: control reaches end of non-void function
    D'une manière générale, ton code est mal écrit, voire mal conçu.
    • pas de suppression des '\n' après fgets()...
    • return au milieu des fonctions
    • non récupération du code de sortie,
    • double appel de fonction inutile

    Je te propose ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    #include <stdio.h>
    #include <string.h>
     
    static void clean (char *s, FILE *fp)
    {
       char *p = strchr (s, '\n');
       if (p != NULL)
       {
          *p = 0;
       }
       else
       {
          int c;
          while ((c = fgetc(fp)) != '\n' && c != EOF)
          {
          }
       }
    }
     
    static int lecture(char const filtre[])
    {
       int found = 0;
       FILE *file = fopen("fichier.txt", "r");
     
       if (file != NULL)
       {
          char list[1000];
          while (fgets(list, sizeof list, file) != NULL)
          {
             clean(list, file);
             printf("%s\n", list);
             printf("%s\n", filtre);
             {
                char *pdest = strstr( list, filtre );
                if ( pdest != NULL )
                {
                   found = 1;
                }
             }
          }
       }
       return found;
    }
     
    static void saisie(char *filtre, size_t size)
    {
       printf("Quel filtre voulez vous appliquer ?\n");
       fgets(filtre, size, stdin);
       clean(filtre, stdin);
    }
     
     
    int main(void)
    {
       int found;
     
       do
       {
          char filtre[100];
          saisie(filtre, sizeof filtre);
          found = lecture(filtre);
       }
       while (!found);
       return 0;
    }
    Pose des questions si tu ne comprends pas.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 213
    Par défaut
    Je vois qu'il t'a fallut moins de tps que moi pour resoudre les problemes....

    Merci pour ta version.

    Par contre je compte bien résoudre mes erreurs et comprendre integralement ton code...

    je reviendrai à la charge si j'ai des doutes...!!!

    Encore merci

Discussions similaires

  1. petit probleme avec while
    Par kharraz dans le forum Débuter
    Réponses: 3
    Dernier message: 11/06/2012, 11h09
  2. Probleme avec while read
    Par Erlen dans le forum Shell et commandes GNU
    Réponses: 19
    Dernier message: 04/01/2011, 22h52
  3. Probleme avec while
    Par shomke dans le forum Général Python
    Réponses: 3
    Dernier message: 01/04/2009, 09h34
  4. probleme avec while Perl
    Par imorum dans le forum Langage
    Réponses: 2
    Dernier message: 21/01/2007, 19h03
  5. Problème avec while et paramètres
    Par mittim dans le forum Linux
    Réponses: 4
    Dernier message: 08/08/2006, 10h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo