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 :

Comment stocker chaque ligne d'un fichier dans un tableau


Sujet :

C

  1. #21
    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 bartmanb Voir le message
    <...>
    OK. Maintenant, il faudrait un exemple de fichier de données... On va y arriver...

  2. #22
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 89
    Points : 29
    Points
    29
    Par défaut
    Fichiers attachés Fichiers attachés

  3. #23
    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 bartmanb Voir le message
    ah oui, ça crashe bien !

    Bon, ben je verrais ça demain...

    Au fait, ton code mieux présenté (mais non corrigé) :
    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <ctype.h>
    #include <string.h>
    #include <assert.h>
     
    int main (int argc, char **argv)
    {
       int ret = EXIT_SUCCESS;
     
       if (argc > 1)
       {
          FILE *f = fopen (argv[1], "r");
          if (f != NULL)
          {
             char s[2000] = "";
             int i;
             int j;
             char lit[4] = "";
             char clause[4] = "";
             int conj_L = 0;        //nombre de litteraux
             int conj_C = 0;        //nombre de clauses
     
             while (fgets (s, sizeof s, f) != NULL)
             {
                if ((s[0] == 'p') && (s[2] == 'c') && (s[3] == 'n')
                    && (s[4] == 'f'))
                {
                   i = 6;
                   j = 0;
                   while (s[i] != ' ')
                   {
                      lit[j] = s[i];
                      i++;
                      j++;
                   }
                   i++;
                   j = 0;
                   while ((s[i] != '\n'))
                   {
                      clause[j] = s[i];
                      i++;
                      j++;
                   }
                   conj_L = atoi (lit);
                   conj_C = atoi (clause);
                }
             }
             fclose (f), f = NULL;
             {
                char **Conjonction = malloc (sizeof (*Conjonction) * conj_L);
     
                for (i = 0; i < conj_L; i++)
                   Conjonction[i] = malloc (sizeof (**Conjonction) * conj_C);
     
                assert (f == NULL);
     
                f = fopen (argv[1], "r");
                if (f != NULL)
                {
                   int k = 0;
                   char s2[2000] = "";
                   while (fgets (s2, 2000, f) != NULL)
                   {
                      if (((s2[0] == ' ') || (s2[0] == '-')))
                      {
                         i = 0;
                         while ((s2[i + 1] != ' ') && (s2[i + 2] != '0'))
                         {
                            Conjonction[k][i] = 'a';
                            i++;
                         }
                         k++;
                      }
                   }
                   fclose (f), f = NULL;
                }
             }
          }
          else
          {
             perror (argv[1]);
             ret = EXIT_FAILURE;
          }
       }
       return ret;
    }

  4. #24
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 89
    Points : 29
    Points
    29
    Par défaut
    oki thanks pour la présentation déjà.
    Et bien @ demain alors pour la suite, je vais dormir également, la nuit porte conseil dit-on.

  5. #25
    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 bartmanb Voir le message
    oki thanks pour la présentation déjà.
    Et bien @ demain alors pour la suite, je vais dormir également, la nuit porte conseil dit-on.
    Une simple instrumentation du code à coup d'assert() pour surveiller la validité des indices montre qu'il y a un dépassement de tableau entrainant un comportement indéfini :
    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
     
    /* http://delahaye.emmanuel.free.fr/clib */
    #include "ed/inc/prt.h"
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <ctype.h>
    #include <string.h>
    #include <assert.h>
     
    #define NELEM(a) (sizeof(a)/sizeof*(a))
     
    int main (int argc, char **argv)
    {
       int ret = EXIT_SUCCESS;
     
       if (argc > 1)
       {
          FILE *f = fopen (argv[1], "r");
          if (f != NULL)
          {
             char s[2000] = "";
             int i;
             int j;
             char lit[4] = "";
             char clause[4] = "";
             int conj_L = 0;        //nombre de litteraux
             int conj_C = 0;        //nombre de clauses
     
             while (fgets (s, sizeof s, f) != NULL)
             {
                if ((s[0] == 'p') && (s[2] == 'c') && (s[3] == 'n')
                    && (s[4] == 'f'))
                {
                   i = 6;
                   j = 0;
                   while (s[i] != ' ')
                   {
                      assert (j < NELEM (lit));
                      assert (i < NELEM (s));
     
                      lit[j] = s[i];
                      i++;
                      j++;
                   }
                   i++;
                   j = 0;
                   assert (j < NELEM (lit));
                   assert (i < NELEM (s));
                   while ((s[i] != '\n'))
                   {
                      assert (j < NELEM (lit));
                      assert (i < NELEM (s));
                      clause[j] = s[i];
                      i++;
                      j++;
                   }
                   conj_L = atoi (lit);
                   conj_C = atoi (clause);
                }
             }
     
             PRT_I (conj_L);
             PRT_I (conj_C);
     
             rewind (f);
     
             {
                char **Conjonction = malloc (sizeof (*Conjonction) * conj_L);
                if (Conjonction != NULL)
                {
                   for (i = 0; i < conj_L; i++)
                   {
                      Conjonction[i] = malloc (sizeof Conjonction[i] * conj_C);
                   }
                   {
                      int k = 0;
                      char s2[2000] = "";
                      while (fgets (s2, 2000, f) != NULL)
                      {
                         if (((s2[0] == ' ') || (s2[0] == '-')))
                         {
                            i = 0;
                            assert (i + 2 < NELEM (s2));
                            while ((s2[i + 1] != ' ') && (s2[i + 2] != '0'))
                            {
                               assert (k < conj_L);
                               assert (i < conj_C);
    #if 1
                               Conjonction[k][i] = 'a';
    #endif
                               i++;
                            }
                            k++;
                         }
                      }
                      fclose (f), f = NULL;
                   }
     
                   for (i = 0; i < conj_L; i++)
                   {
                      free (Conjonction[i]), Conjonction[i] = NULL;
                   }
                   free (Conjonction), Conjonction = NULL;
     
                }
             }
     
          }
          else
          {
             perror (argv[1]);
             ret = EXIT_FAILURE;
          }
       }
       return ret;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    conj_L       = 60
    conj_C       = 160
    Assertion failed: k < conj_L, file main.c, line 86
     
    This application has requested the Runtime to terminate it in an unusual way.
    Please contact the application's support team for more information.
     
    Press ENTER to continue.
    Je te laisse corriger le bug.

  6. #26
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 89
    Points : 29
    Points
    29
    Par défaut
    Tite question : comment ça se fait que quand je fais ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(((s2[0]!='p')||(s2[0]!='c')))
    			{
    				i=0;
    				j=i+1;
    				while(s2[i]!='\n')
    				{
    					i++;
    				}
    				printf("%d\n",i);
    				k++;
    			}
    il rentre dans le test même quand dans mon fichier le premier caractère de chaque ligne est un p ou un c ??? Si change le != par un == il m'affiche par contre bien que les lignes commençant par p ou c ....

  7. #27
    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 bartmanb Voir le message
    Tite question : comment ça se fait que quand je fais ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(((s2[0]!='p')||(s2[0]!='c')))
    			{
    				i=0;
    				j=i+1;
    				while(s2[i]!='\n')
    				{
    					i++;
    				}
    				printf("%d\n",i);
    				k++;
    			}
    il rentre dans le test même quand dans mon fichier le premier caractère de chaque ligne est un p ou un c ??? Si change le != par un == il m'affiche par contre bien que les lignes commençant par p ou c ....
    Parce que c'est exactement ce que tu demandes. Simple problème de logique booléenne... Pour que OU soit vrai, il suffit qu'une des conditions soit vraie. Donc, si s2[i] vaut 'p', l'expression s2[0]!='c' est vraie (ben oui 'p' est différent de 'c'), donc le if devient actif. Je te laisse réfléchir et corriger.

  8. #28
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 89
    Points : 29
    Points
    29
    Par défaut
    Ca y'est j'ai tout résolu le soucis d'expresseion booléen et l'erreur de débordement qui était du à une mauvaise allocation ... je vais pouvoir continuer mon projet tranquille, peut être à tout à l'heure si d'autres problème surgissent ... et MerKi encore !!!!!!

  9. #29
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 89
    Points : 29
    Points
    29
    Par défaut
    Petite question supplémentaire: si pour une conjonction je veux calculer le nombre de "nombres présents" comme par exemple dans le fichier joint précédemment comment je peux procéder pour prendre en paramètre de la fonction qu'un char *conjonction au lieu de prendre le tableau char **conjonction:

    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
    int nb_Lit(char **clause)
    {
    	int C=0, nb=0;
    	int L=0;
    	while(clause[C]!='\0')
    	{
    		if(clause[C][L]!=' ') 
    		{
    			nb++;
    			while(clause[C][L]!=' ') L++;
    		}
    		else L++;
    	}
    	return nb;
    }
    Pour résumer dans le main j'aimerais procéder à un appel de ce type: nb_Lit(Conjonction[0]); Comment je peux modifier ma fonction pour obtenir celà ???

  10. #30
    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 bartmanb Voir le message
    Petite question supplémentaire: si pour une conjonction je veux calculer le nombre de "nombres présents" comme par exemple dans le fichier joint précédemment comment je peux procéder pour prendre en paramètre de la fonction qu'un char *conjonction au lieu de prendre le tableau char **conjonction:

    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
    int nb_Lit(char **clause)
    {
    	int C=0, nb=0;
    	int L=0;
    	while(clause[C]!='\0')
    	{
    		if(clause[C][L]!=' ') 
    		{
    			nb++;
    			while(clause[C][L]!=' ') L++;
    		}
    		else L++;
    	}
    	return nb;
    }
    Pour résumer dans le main j'aimerais procéder à un appel de ce type: nb_Lit(Conjonction[0]); Comment je peux modifier ma fonction pour obtenir celà ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int nb_Lit(char *clause)
    {
    	int nb=0;
    	int L=0;
    		if(clause[L]!=' ') 
    		{
    			nb++;
    			while(clause[L]!=' ') L++;
    		}
    		else L++;
    	return nb;
    }
    Non testé, non compilé. Et j'ai peut être mal compris la question...

  11. #31
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 89
    Points : 29
    Points
    29
    Par défaut
    lol c'est dur dur le matin, en fait je veux que cette fonction permette de calculer le nombre d'éléments qu'il y'a dans chaque conjonction. c'est à dire par exemple si Conjonction[0]=" 37 40 1 " je veux que la fonction renvoit 3 car il y'a 3 nombre dans la conjonction.
    Mais le truc c'est que pour moi le tableau Conjonction est un char **, donc en fait je veux savoir comment l'utiliser cette fonction afin d'avoir dans le main un appel à cette fonction de la forme: nb_Lit(Conjonction[0]), donc en fait sans utiliser la 2ème dimension dans l'appel de la fonction.

    Je sais pas si j'ai été un peu plus clair ...

    MerKi

  12. #32
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par bartmanb
    Mais le truc c'est que pour moi le tableau Conjonction est un char **
    Donc Conjonction[0] est un char *.
    Citation Envoyé par bartmanb
    donc en fait je veux savoir comment l'utiliser cette fonction afin d'avoir dans le main un appel à cette fonction de la forme: nb_Lit(Conjonction[0])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    int nb_Lit(char * conj)
    {
        int i, nb_elements = 0;
     
        for(i = 0; conj[i] != '\0'; i++)
        {
            ...
        }
     
        return nb_elements;
    }

  13. #33
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 89
    Points : 29
    Points
    29
    Par défaut
    Voilà c'est exactement celà que je veux mais si dans le for je souhaite faire des test sur conjonction[i][j] pour pouvoir calculer le nombre d'éléments dans la conjonction ça ne marchera pas non ???

  14. #34
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Mais dans ce cas t'as pas le choix tu dois passer Conjonction et pas seulement Conjonction[i] à la fonction alors puisque tu veux également acceder à Conjonction[<autre que i>]. Tu dois juste fournir en argument l'indice de la conjonction qui t'intéresse, donc finalement on a quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    int nb_Lit(char **t, int i)
    {
        char * conj = t[i];
        int j, nb_elements = 0;
     
        for(j = 0; conj[j] != '\0'; j++)
        {
            ...
        }
     
        return nb_elements;
    }
    Donc on ne fait plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... = nb_Lit(Conjonction[0]);
    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... = nb_Lit(Conjonction, 0);
    C'est ce que tu cherchais?

  15. #35
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 89
    Points : 29
    Points
    29
    Par défaut
    vais mettre ça en oeuvre mais je pense que c'est nickel oui merçi, je te confirmerais tout à l'heure là je révise mon réseau.

    En tout cas merKi beaucoup

  16. #36
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 89
    Points : 29
    Points
    29
    Par défaut
    UP ! Merci Melem ça a été nickel ce que tu mas dit.

    Now j'ai une autre question (et oui toujours et encore) : comment fait-on pour faire une fonction qui renvoie une chaîne de caractères ???

  17. #37
    Membre actif
    Profil pro
    Dev
    Inscrit en
    Décembre 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Décembre 2007
    Messages : 191
    Points : 216
    Points
    216

  18. #38
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    On peut aussi directement faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    char * bonjour()
    {
        return "bonjour";
    }
    Ce qui n'a rien à voir avec ceci (!!!DANGER!!!) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    char * khonerie()
    {
        char s[] = "bonjour";
        return s;
    }
    Dans la première on retourne bien un pointeur (abus de langage ...) sur la chaîne "bonjour". Dans la deuxième on retourne l'adresse du premier élément du tableau s qui est une variable locale automatique à la fonction (et qui n'est donc connue qu'à l'intérieur de cette fonction ...).

  19. #39
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 181
    Points : 199
    Points
    199
    Par défaut
    @Melem : Je ne comprends pas pourquoi ce code est bon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    char * bonjour()
    {
        return "bonjour";
    }
    La fonction retourne juste un pointeur : alors où est stockée la chaîne de caractères lorsque la fonction se termine ? Il n'y a aucune allocation mémoire... c'est un comportement indéfini ou non ?
    Une chaîne c'est un tableau de char, or il est impossible de retourner un tableau entier en langage C, tout comme on ne peut pas non plus passer un tableau en paramètre, on se contente de passer des pointeurs... d'où mon incompréhension devant ton code

    La FAQ semble aller dans mon sens, si on veut récupérer une chaîne :
    • soit on envoie un pointeur sur un tableau de char à la fonction, qui va pouvoir utiliser l'espace du tableau pour y mettre une chaîne de caractères
    • soit on fait une allocation dynamique et on récupère un pointeur,

    J'ai dit des bêtises ?

  20. #40
    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 bartmanb Voir le message
    Now j'ai une autre question (et oui toujours et encore) : comment fait-on pour faire une fonction qui renvoie une chaîne de caractères ???
    Une chaine étant un tableau de char, il y a des précautions...

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

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/04/2008, 00h38
  2. comment stocker les données d'une hashtable dans un fichier?
    Par mokh7 dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 02/04/2008, 02h31
  3. Réponses: 13
    Dernier message: 20/11/2006, 17h46
  4. Comment mettre les lignes d'un fichier dans un tableau en shell
    Par Ombrius dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 23/10/2006, 12h34
  5. Réponses: 14
    Dernier message: 19/11/2005, 18h56

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