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 :

Fin d'un tableau


Sujet :

C

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut Fin d'un tableau
    Bonjour,

    désolé si c'est une question bete mais dans une procedure je récupère les info d'un fichier texte

    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
    void RecuperationCarte(int **Recuperation)
    {
        struct stat  buf;
        int    n=0; 
     
        FILE * FicTxt;
        int temp;
     
        if((FicTxt = fopen("map1.txt","rt")) == NULL)
        {
            printf("erreur");
            exit(-1);
        }
     
        fstat(fileno(FicTxt),&buf);
     
        *Recuperation = malloc (buf.st_size);
        if ( *Recuperation == NULL )
        {
            printf("erreur d'allocation");
            fclose(FicTxt);
            exit(-1);
        }
     
        while((temp = fgetc(FicTxt))!=EOF)
        {
           (*Recuperation)[n] = temp ;
           n++ ;
        }
     
        //fermeture du fichier texte
        fclose(FicTxt);
     
    }
    cette procédure m'avait été proposée dans une une autre discussion et fonctionne mais maintenant dans une nouvelle procédure que j'ai créée je veux afficher ce que j'ai récupéré. j'ai le code suivant dans ma procédure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while(Recuperation[i]!=NULL)
        {
            printf("%c",Recuperation[i]);
            i++;
     
        }
    ca m'affiche bien ce qu'il y a dans le fichier texte puis 2 ligne en dessous d'autre caractères... mon expression du while n'est-elle pas bonne?


    Edit:

    j'ai un ptit warning d'ailleurs sur mon while :

    warning C4047: '!=' : 'int ' differs in levels of indirection from 'void *'

  2. #2
    Membre expérimenté Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Par défaut
    en fait si t'as un tableau, la fin n'est pas forcément donné par NULL :s il faut que tu formates toi même un chiffre ou lettre finale

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int tab[5] = {0, 1, 2, 3, -1};
     
    int i=0;
    while(tab[i] != -1)
    {
        //...
        i++;
    }
    voilà une solution parmis d'autres !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Oui,
    je pensais à un truc comme ca mais en fait, dans mon cas j'ai mis un -1 à la fin de mes données dans le fichier texte d'où elles viennent.
    mais je récupère un - dans la case de mon tableau (il récupère caractere par caractere mais je ne comprend pas pourquoi)

  4. #4
    Membre expérimenté Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Par défaut
    c'est cette fonction : fgetc() elle prend 1 caractère dans le flux

  5. #5
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    Tu pourais aussi faire retourner à la fonction qui remplit ton tableau (RecuperationCarte) le nombre d'élément qu'elle a assigné.

    tu pourais ensuite l'utiliser dans ta boucle while.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    oui, ok pour le nombre d'éléments mais j'aimerais pouvoir faire sans !



    c'est cette fonction : fgetc() elle prend 1 caractère dans le flux
    tu proposerais autre chose pour éviter ce problème?

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    hop,
    voilà j'ai résolu le problème en fait en mettant un 'x' à la fin de mes données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while(Recuperation[i]!='x')
        {
            printf("%c",Recuperation[i]);
            i++;
     
        }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. scroll horizontal qui cache la fin d'un tableau
    Par touty dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 23/05/2008, 12h43
  2. Test pour trouver la fin d'un tableau
    Par apprentito dans le forum Cobol
    Réponses: 11
    Dernier message: 25/01/2008, 01h41
  3. Ajout de tableau à la fin d'un tableau
    Par TobyKaos dans le forum C
    Réponses: 25
    Dernier message: 12/09/2007, 15h13
  4. [VBA-W] Navigation à la fin d'un tableau word
    Par tazamorte dans le forum VBA Word
    Réponses: 8
    Dernier message: 21/06/2007, 10h19
  5. Réponses: 4
    Dernier message: 27/10/2005, 10h09

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