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 :

Utilisation de valeurs enumérées pour une comparaison


Sujet :

C

  1. #21
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 63
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par souviron34
    je dirais même plus, pour être tout à fait conforme à l'idée d'origine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      else
       {
         fclose(liste1);
         liste1 = fopen ("C:\Programing\file02.doc", "a+");
        }
     
       return ret;
    }
    je ne peus pas a cette etape la lui demander d'ouvrir le fichier en ecriture a la fin, car si il existait deja et qu'il contient une liste que je n'ai pas chargé(cas N°2) ), alors je ne vais pas commencer à lire à la fin du fichier mais au debut.

  2. #22
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 63
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par koala01
    Heu, avant de répondre, je préfèrerais te poser la question subsidiaire:

    as tu suffisemment "percuté" sur les liste chainées que pour te permettre de vouloir les utiliser en conjonction avec les fichiers

    C'est simplement parce que l'expérience m'a appris qu'à essayer d'apprendre deux choses à la fois, on fini par tres mal apprendre les deux...:il faut savoir marcher avant de vouloir courrir

    jai eu a faire deja une liste chainée qui avait marché.
    le truc c'est que ca cest pas un devoir, mais des exercices personnels que j#essaye pour me performer, car j'ai toujours appris comme ca, faute d#avoir une livre ou je ne sais pas quoi où je pourrais trouver des exercices bons sensés et utiles.

  3. #23
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par chrysmac2003
    je ne peus pas a cette etape la lui demander d'ouvrir le fichier en ecriture a la fin, car si il existait deja et qu'il contient une liste que je n'ai pas chargé(cas N°2) ), alors je ne vais pas commencer à lire à la fin du fichier mais au debut.
    OK mais c'était pas précisé.....

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par chrysmac2003
    premierement je voudrais de mander si lorsqu'on utilise le code ci-dessous cest correcte car dessus je ne vois pas d'allocation despace pour la variable test!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
         typedef char *String;
     
         main()
         {
             String Text = "Thunderbird";
     
             printf("%s\n", Text);
         }
    C'est correct.

    http://emmanuel-delahaye.developpez....aine_litterale

    ensuite j'aime rai que vous m'aidiez a corriger le code suivant afin que je puisse savoir si le string entrer par un utilisateur correspond a l'une des valeurs correspondantes de mon typedef:
    Il n'y a pas de lien direct entre un enum et une chaine. Mais on peut en créer un.

    http://emmanuel-delahaye.developpez.com/item_list.htm

  5. #25
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Sympa la technique Un peu plus long à mettre en oeuvre mais cela peut s'avérer pratique sur des longues listes d'items c'est vrai.

  6. #26
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 63
    Points : 23
    Points
    23
    Par défaut
    encore une petite question avec fgets:
    croyez vous que je peus demander la lecture d'un jour du mois (donc compris entre 1 et 31) avec l'instruction suivante? :
    fgets(str,sizeof('31'),stdin);
    si non! comment le feriez vous???
    thanks!!!

  7. #27
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par chrysmac2003
    encore une petite question avec fgets:
    croyez vous que je peus demander la lecture d'un jour du mois (donc compris entre 1 et 31) avec l'instruction suivante? :
    fgets(str,sizeof('31'),stdin);
    si non! comment le feriez vous???
    thanks!!!
    Nan nan nan ... le second paramètre de fgets est la taille du buffer donc la taille maximum que doit lire cette fonction ! Si tu veux récupérer une valeur numérique pas le choix, tu la récupères avec fgets puis tu la convertie avec strtol

  8. #28
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 63
    Points : 23
    Points
    23
    Par défaut
    ok, ca veut donc dire que dans ce cas si j'ai pas de moyen de delimiter la grandeur de la valeur lue ....

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par chrysmac2003
    ok, ca veut donc dire que dans ce cas si j'ai pas de moyen de delimiter la grandeur de la valeur lue ....
    A priori, non, mais à postériori, oui. Il suffit, une fois la conversion faite, de vérifier si la valeur est dans les bornes, de signaler l'erreur et de redemander... do-while est ton ami...

    Evidemment on peut aussi écrire une fonction de saisie dont l'interface serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int get_num (int min, int max, int *p_error);

  10. #30
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 63
    Points : 23
    Points
    23
    Par défaut
    pour ces parties de mon code j'ai utilisé une sorte de procedure
    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
     
    string readuntil(FILE *file,char stop1,int JMAX)
    {
    	char c1[60],c2[2],stop2[2];  //jai du ajouter un stop2 car en employant directement stop1 y'avait toujours une erreur avec strncomp
    	int j=0;
    	c1[0]='\0';
    	stop2[0]=stop1;
    	stop2[1]='\0';
    	printf("__%s--%d--\n",stop2,strncmp(stop2,c2,sizeof(stop1)));
    	while(fgets(c2,sizeof(c2),file))
    	{
     
    		if( !strncmp(stop2,c2,sizeof(stop1)) ) break;
     
    		strncat(c1,c2,sizeof(c1) );  
    		if ( (1+j)>JMAX )
    		{
    			printf("you seems to have enter a wrong month in the file\n");
    			exit(-1);
    		};
    		c1[sizeof(c2)+(j++)]='\0';
    	};
    	//printf("__%s--%d--\n",stop2,strncmp(stop2,c2,sizeof(stop1)));
    	return c1;
    };

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 40
    Dernier message: 04/11/2016, 17h28
  2. Réponses: 3
    Dernier message: 10/08/2012, 14h24
  3. utiliser une valeur float pour une boucle for
    Par didi59650 dans le forum Débuter
    Réponses: 6
    Dernier message: 18/04/2006, 17h32
  4. [Tableaux] Tableau valeur vide pour une clé
    Par hisy dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2006, 11h49
  5. [MASM] Utiliser un .IF pour une comparaison de nombre signés
    Par Crisanar dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 24/11/2004, 16h32

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