Remplir tableau fichier txt en C

sophie_m Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
sophie_m Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

voila je programme en C j'ai un tableau rempli en dur qui contient des chaines de caractère :
exemple :
char *MesMes[] =
{
/* 0 ID_POINT_INTER4 0 */ "????",
/* 1 ID_FORMATAGE 1 */ "Formatage ......",
/* 2 ID_CONDUCTEUR 2 */ "CONDUCTEUR :",
/* 3 ID_PRISE_DE_SERVICE 3 */ " PRISE DE SERVICE ",
...
}
Je voudrais mettre tout ca dans un fichier texte et ensuite grace a une fonction remplir le tableau grace à ce fichier.
Je n'ai aucune idée de quelle fonction utiliser pour lire le fichier texte, ou placer une à une les chaine de caractères dans le tableau.
Toute aide sera la bienvenue.
Merci d'avance
A voir également:

38 réponses

sophie_m Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   2
 
si j'ai un main???Ben oui j'ai mis mon programme dedans.
0
kazou
 
#incluide <stdio.h>
#include <string.h>
#define TAILLE_MAX = 100

void init_tab()
{
int i=0;
char* chaine[TAILLE_MAX];
char* buffer;
FILE * f = NULL;


f = fopen("essai.txt","r");
if ((f !=NULL)
{
while ( fgets (f, TAILLE_MAX,buffer))
{
stcpy(buffer, MesPrt[i]);
i++;
}
fclose(fichier);
}
}
0
sophie_m Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   2
 
oula c encore pire avec ton code :
"main.c", line 23 pos 6; (W) [ANSI] missing prototype for "init_tab"
"main.c", line 25 pos 6; (W) [ANSI] missing prototype for "init_tab"
"main.c", line 28 pos 21; (E) syntax error; unexpected symbol: "="
"main.c", line 30 pos 11; (E) invalid array size
"main.c", line 30 pos 10; (E) syntax error; unexpected symbol: "="
"main.c", line 30 pos 1; (E) undeclared identifier "FILE"
"main.c", line 30 pos 8; (E) undeclared identifier "f"
"main.c", line 35 pos 1; (E) syntax error; unexpected symbol: "{"
"main.c", line 36 pos 26; (E) syntax error; unexpected symbol: "="
"main.c", line 36 pos 9; (W) [ANSI] missing prototype for "fgets"
"main.c", line 38 pos 1; (W) [ANSI] missing prototype for "stcpy"
"main.c", line 38 pos 15; (E) undeclared identifier "MesPrt"
"main.c", line 41 pos 1; (W) [ANSI] missing prototype for "fclose"
"main.c", line 41 pos 8; (E) undeclared identifier "fichier"
0
kazou
 
ouai c'est normal tu compile avec la norme ANSI, il y a un autre probleme c'est que ton tableau tu le retourne nul part donc je te conseil de le declarer en variable globale



#incluide <stdio.h>
#include <string.h>
#define TAILLE_MAX = 100

char* chaine[TAILLE_MAX];

void init_tab(void)
{
int i=0;

char* buffer;
FILE * f = NULL;


f = fopen("essai.txt","r");
if ((f !=NULL)
{
while ( fgets (f, TAILLE_MAX,buffer))
{
stcpy(buffer, chaine[i]);
i++;
}
fclose(fichier);
}
}


voila ca devrai allé mieu oublie pas les
#incluide <stdio.h>
#include <string.h>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kazou
 
fclose(f); pas fclose(fichier);
0
sophie_m Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   2
 
non ca ne marche toujours pas.
et c'est bizar dans ton code mon tableau MesPrt a disparu.

"main.c", line 23 pos 6; (W) [ANSI] missing prototype for "init_tab"
"main.c", line 44 pos 21; (E) syntax error; unexpected symbol: "="
"main.c", line 57 pos 8; (E) invalid array size
"main.c", line 51 pos 10; (E) syntax error; unexpected symbol: "="
"main.c", line 51 pos 1; (E) undeclared identifier "FILE"
"main.c", line 51 pos 8; (E) undeclared identifier "f"
"main.c", line 56 pos 1; (E) syntax error; unexpected symbol: "{"
"main.c", line 57 pos 26; (E) syntax error; unexpected symbol: "="
"main.c", line 57 pos 9; (W) [ANSI] missing prototype for "fgets"
"main.c", line 59 pos 1; (W) [ANSI] missing prototype for "stcpy"
"main.c", line 62 pos 1; (W) [ANSI] missing prototype for "fclose"
"main.c", line 62 pos 8; (E) undeclared identifier "fichier"
0
kazou
 
je vais te faire le programme tel que je l'aurais fait
0
sophie_m Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   2
 
ca serait super sympa en effet si tu veux pas y passer toute l'après midi.lol
0
kazou
 
#incluide <stdio.h>
#include <string.h>
#define TAILLE_MAX = 100

char* chaine[TAILLE_MAX];


void init_tab(void)
{
int i=0;

char* buffer;
FILE * f = NULL;


f = fopen("essai.txt","r");
if ((f ==NULL)return;

while ( fgets (f, TAILLE_MAX,buffer))
{
stcpy(buffer, chaine[i]);
i++;
}

fclose(f);
}

int main(void){
init_tab();
return 0;
}


voila copie ca mot pour mot dans un nouveau fichier ca devrai marcher
tu n'as pas fait de .h ?
0
sophie_m Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   2
 
un point h pour mettre le proto? non. Je voulais le mettre juste au dessu de la fonction moins compliqué
0
kazou
 
ok ca ne marche pas le programme que je t'ai mit ?
0
sophie_m Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   2
 
j'ai fait exactement ce que tu ma dis et ca ne marche toujours pas
0
kazou
 
je sors mon compilateur et je t'envoie un beau programme qui marche
0
sophie_m Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   2
 
merci de te prendre la tete avec mon probleme .C super sympa
0
kazou
 
#include <stdio.h>
#include <string.h>
#define TAILLE_MAX =100

char*chaine[100];

void init_tab(void)
{
int i=0;

char* buffer;
FILE * f = NULL;


f = fopen("essai.txt","a+");
if (f ==NULL)return;

while( fgets(buffer,100 ,f)){
strcpy(chaine[i],buffer);
i++;
}

fclose(f);
}

int main(void){

init_tab();

return 0;
}


voila ça, ça marche chez moi
0
sophie_m Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   2
 
merci beaucoup pour tout ce que tu as fais mais chez moi ca ne marche pas. ca doit venir de tout le code qu'il y a à coté.Donc ca serait vraiment trop long a expliquer.Mais des que ca marche je met le morceau de code.Merci pour tout Kazou.
0
kazou
 
ok ok verifie bien ce que tu as mit a coté car chez moi ca marche niquel
jaffiche le tableau et jai chaque phrase dans une case differente
desolé je peux pas faire plus
0
sophie_m Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   2
 
c'est pas moi qui ai mis a coté.lol.
ce sont les super ingénieurs de ma boite donc je v allé gueuler vers mes patrons.non Mais.Merci pour tout
0