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 :

lecture d'un tableau dans un fichier et affichage bizarre


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 135
    Points : 44
    Points
    44
    Par défaut lecture d'un tableau dans un fichier et affichage bizarre
    bonjour
    j'ai chargé un fichier contenant : "12345"
    mais lorsque que je veux lafficher j'ai cela en sortie console :

    j'ai 12345-895689460-895689460-895689460-895689460-895689460

    quest ce que vienne faire ces nombres aprés mon tableau ??
    voici mon code:
    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
     
    #include <stdlib.h>
    #include <stdio.h>
     
    void charger_fichier(char*,int*);
    void affiche_map(int *);
     
     
    void main (void)
     
    {
    	int Map[5];
     
     
    	charger_fichier("level1.txt",Map);
    	affiche_map(Map);
     
    }
     
    void charger_fichier(char *name,int*Map)
    {	
     
    	FILE*fp;
    	fp = fopen (name,"r");
    	for ( int i =0 ; i < 5 ; i++ )
    				fscanf(fp,"%d",&Map[i]);
    		fclose( fp);
     
    }
     
    void affiche_map(int*Map)
    {    
    			for ( int j=0 ; j< 5 ; j++)
    					printf("%d",Map[j]);
    }
    Cordialement Bruno

  2. #2
    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 Re: lecture d'un tableau dans un fichier et affichage bizarr
    Citation Envoyé par bonjour69
    bonjour
    j'ai chargé un fichier contenant : "12345"
    mais lorsque que je veux lafficher j'ai cela en sortie console :

    j'ai 12345-895689460-895689460-895689460-895689460-895689460

    quest ce que vienne faire ces nombres aprés mon tableau ??
    C'est normal Il faut compter les conversions reussies...
    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
     
    #include <stdlib.h>
    #include <stdio.h>
     
    static int charger_fichier (char const *name, int *Map, size_t size)
    {
       int n = 0;
       FILE *fp = fopen (name, "r");
     
       if (fp != NULL)
       {
          size_t i;
     
          for (i = 0; i < size; i++)
          {
             int ret = fscanf (fp, "%d", Map + i);
     
             if (ret != 1)
             {
                fprintf (stderr, "invalid conversion\n");
                break;
             }
          }
          n = i;
          fclose (fp);
       }
       else
       {
          perror (name);
          n = -1;
       }
       return n;
    }
     
    static void affiche_map (int const *Map, size_t size)
    {
       size_t j;
     
       for (j = 0; j < size; j++)
       {
          printf ("%d\n", Map[j]);
       }
    }
     
    int main (void)
    {
       int Map[5];
    #define NELEM(a) (sizeof(a)/sizeof*(a))
     
       int n = charger_fichier ("level1.txt", Map, NELEM (Map));
       if (n >= 0)
       {
          affiche_map (Map, n);
       }
       return 0;
    }
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    alors la reponse est toute simple, dns ton fichier texte, rien ne montre que 1 2 3 4 et 5 sont séparé donc lui il lis le 1er nombre = 12345
    la solution est de mettre des espaces entres tes nb dns ton fichiers txt
    ++

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 135
    Points : 44
    Points
    44
    Par défaut br
    Bonjour,

    En effet vos deux corrections marches

    Merci a vous deux!

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Pas dkoi si je peut aider je le fait avec plaisir
    ++

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/06/2010, 14h13
  2. Lecture d'un tableau dans un fichier
    Par Sachiel31 dans le forum C++
    Réponses: 30
    Dernier message: 19/07/2006, 19h57
  3. C++ lecture d'un tableau dans un fichier
    Par nicoss dans le forum C++
    Réponses: 1
    Dernier message: 28/05/2006, 10h26
  4. [JList] Lecture des données sauvegardées dans un fichier
    Par Myogtha dans le forum Composants
    Réponses: 7
    Dernier message: 10/06/2004, 21h05
  5. [C#] [.NET] Lecture d'une classe dans un fichier
    Par niPrM dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/05/2004, 08h57

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