Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
3353 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Charger fichier txt dans tableau

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Charger fichier txt dans tableau

n°2256730
val916
Posté le 27-04-2015 à 18:43:30  profilanswer
 

Bonjour à tous,
Pour un projet je dois charger des nombres dans un fichier txt pour les remettre dans mon tableau. Pour cela j'ai créé ce sous-programme :  

Code :
  1. void chargerDonjon(char* monFichier, sCaseDonjon tab[LIGNES][COLONNES])
  2. {
  3.     FILE* fin;
  4.     int i,j;
  5.     if ((fin=fopen(monFichier, "r" )) == NULL)
  6.     {
  7.         fprintf(stderr, " Echec ouverture du fichier %s ", monFichier);
  8.         exit(EXIT_FAILURE);
  9.     }
  10.     for(i=0; i < LIGNES; i++)
  11.     {
  12.         for(j=0; j < COLONNES; j++)
  13.         {
  14.             fscanf(fin, "%d %d \n", &(tab[i][j].typeCase), &(tab[i][j].statutCase));
  15.         }
  16.         fclose(fin);
  17.     }
  18. }


 
Le problème est que ce sous programme semble ne pas marcher... Je solicite donc votre aide !
Merci d'avance

mood
Publicité
Posté le 27-04-2015 à 18:43:30  profilanswer
 

n°2256735
rat de com​bat
attention rongeur méchant!
Posté le 27-04-2015 à 19:24:03  profilanswer
 

C'est quoi la définition de sCaseDonjon? Donne un exemple compilable.

Message cité 1 fois
Message édité par rat de combat le 27-04-2015 à 19:24:27
n°2256736
caps lock
Posté le 27-04-2015 à 19:26:38  profilanswer
 

Tu fermes ton fichier après la première ligne

n°2256738
val916
Posté le 27-04-2015 à 19:37:13  profilanswer
 

rat de combat a écrit :

C'est quoi la définition de sCaseDonjon? Donne un exemple compilable.

 
Code :
  1. struct caseDonjon
  2. {
  3.     int typeCase; //0: sol nu, 1: mur exterieur, 2: mur interieur, 3: porte fermee, 4: porte ouverte, 5: rochers
  4.     int statutCase; // 0: vide, 1: occupee
  5. };
 
Code :
  1. sCaseDonjon donjon[LIGNES][COLONNES]=
  2.     {
  3.         {{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0}},
  4.         {{1,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{1,0}},
  5.         {{1,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{1,0}},
  6.         {{1,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{1,0}},
  7.         {{1,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{1,0}},
  8.         {{1,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{1,0}},
  9.         {{1,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{1,0}},
  10.         {{1,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{1,0}},
  11.         {{1,0},{0,0},{0,1},{0,0},{0,0},{0,0},{2,0},{0,0},{0,0},{1,0}},
  12.         {{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0}}
  13.     };


Message édité par val916 le 27-04-2015 à 19:40:22
n°2256739
val916
Posté le 27-04-2015 à 19:37:34  profilanswer
 

caps lock a écrit :

Tu fermes ton fichier après la première ligne


 
Pardon ? Je n'ai pas bien compris :)

n°2256742
caps lock
Posté le 27-04-2015 à 19:47:39  profilanswer
 

Le problème c'est qu'avec un tel déficit d'information on va avoir du mal à deviner le ou les problèmes, si tu n'as pas 5000lignes il est préférable que tu postes ton code entier ici (avec les balises adéquates) et que tu fournisses également ton fichier texte.
 
Quant à ce que je disais :

Code :
  1. for(i=0; i < LIGNES; i++)
  2.     {
  3.         for(j=0; j < COLONNES; j++)
  4.         {
  5.             fscanf(fin, "%d %d \n", &(tab[i][j].typeCase), &(tab[i][j].statutCase));
  6.         }
  7.         fclose(fin);  <--- ici tu fermes ton fichier après avoir parcouru qu'une seule ligne
  8.     } // le fclose doit aller ici

n°2256743
val916
Posté le 27-04-2015 à 19:52:53  profilanswer
 

caps lock a écrit :

Le problème c'est qu'avec un tel déficit d'information on va avoir du mal à deviner le ou les problèmes, si tu n'as pas 5000lignes il est préférable que tu postes ton code entier ici (avec les balises adéquates) et que tu fournisses également ton fichier texte.
 
Quant à ce que je disais :

Code :
  1. for(i=0; i < LIGNES; i++)
  2.     {
  3.         for(j=0; j < COLONNES; j++)
  4.         {
  5.             fscanf(fin, "%d %d \n", &(tab[i][j].typeCase), &(tab[i][j].statutCase));
  6.         }
  7.         fclose(fin);  <--- ici tu fermes ton fichier après avoir parcouru qu'une seule ligne
  8.     } // le fclose doit aller ici



 
Merci de votre aide, vraiment une erreur bête de ma part.
Concernant l'écriture des lignes sur le forum je prend note! C'est ma première fois ici (pas taper) :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Charger fichier txt dans tableau

 

Sujets relatifs
retrouver un mot dans un FichierDecouper un fichier
[PHP] TableauAide Fichier.bat info Regroupage info fichier texte
Recherche d'un caractère dans un tableau et affichage d'un message[Win7] Insertion de texte dans un nom de fichier lors d'un copy
Lire des fichier WAV avec le language AdaListe fichier expression régulière
[RESOLU] Batch - copier des parties d'un fichier texte[C] charger un fichier texte en tableau
Plus de sujets relatifs à : Charger fichier txt dans tableau


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR