Remplir tableau fichier txt en C
Fermé
sophie_m
Messages postés
25
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
5 juin 2008
-
3 juin 2008 à 14:07
sophie_m Messages postés 25 Date d'inscription mardi 3 juin 2008 Statut Membre Dernière intervention 5 juin 2008 - 3 juin 2008 à 16:31
sophie_m Messages postés 25 Date d'inscription mardi 3 juin 2008 Statut Membre Dernière intervention 5 juin 2008 - 3 juin 2008 à 16:31
A voir également:
- Remplir tableau fichier txt en C
- Fichier rar - Guide
- Tableau croisé dynamique - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Tableau ascii - Guide
38 réponses
tu veux mettre ce qu'il y a dans le tableau dans le fichier ou le contraire ?
si c'est du tableau dans le fichier c'est simple tu fais un fopen
puis une boucle sur la taille de ton tableau et a chaque itération tu fprintf dans ce fichier
confirme si c'est ce que tu voulais ou explique en mieux :)
si c'est du tableau dans le fichier c'est simple tu fais un fopen
puis une boucle sur la taille de ton tableau et a chaque itération tu fprintf dans ce fichier
confirme si c'est ce que tu voulais ou explique en mieux :)
sophie_m
Messages postés
25
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
5 juin 2008
2
3 juin 2008 à 14:45
3 juin 2008 à 14:45
ok merci et pour le reste je pensais fair ca:
#define TAILLE_MAX = 100
void init_tab()
{
int i=0;
char chaine[TAILLE_MAX]="";
FILE* fichier = NULL;
fichier = fopen(essai.txt", "r");
if (fichier != NULL)
{
while ( fgets (chaine, TAILLE_MAX, ficher) != NULL)
{
*MesMes[i]=printf ("ùs", chaine);
i ++;
}
fclose (fichier);
}
retun 0;
}
#define TAILLE_MAX = 100
void init_tab()
{
int i=0;
char chaine[TAILLE_MAX]="";
FILE* fichier = NULL;
fichier = fopen(essai.txt", "r");
if (fichier != NULL)
{
while ( fgets (chaine, TAILLE_MAX, ficher) != NULL)
{
*MesMes[i]=printf ("ùs", chaine);
i ++;
}
fclose (fichier);
}
retun 0;
}
shuya89
Messages postés
470
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
28 novembre 2014
39
3 juin 2008 à 14:10
3 juin 2008 à 14:10
les fonctions pour les fichier sont :
fopen pour ouvrir un fichier
fread pour lire un fichier
fprintf pour erir sur ce ficier voila mais il y a un bon tuto sur le site du zero va y faire un tour et tu trouveras ta solution
fopen pour ouvrir un fichier
fread pour lire un fichier
fprintf pour erir sur ce ficier voila mais il y a un bon tuto sur le site du zero va y faire un tour et tu trouveras ta solution
sophie_m
Messages postés
25
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
5 juin 2008
2
3 juin 2008 à 14:15
3 juin 2008 à 14:15
Merci beaucoup, je vais allé y faire un tour.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
shuya89
Messages postés
470
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
28 novembre 2014
39
3 juin 2008 à 14:16
3 juin 2008 à 14:16
mais derien c normal
sophie_m
Messages postés
25
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
5 juin 2008
2
3 juin 2008 à 14:34
3 juin 2008 à 14:34
les deux.n fait la tout est dans un tableau.Mais c'est codé en dur donc "pas bien".
Je pensais mettre manuellement ce qu'il y a dans le tableau dans le fichier txt.
Et ensuite il faut que je prenne mon fichier txt et que je m'en serve pour remplir un nouveau tableau.Tu comprends?
Je pensais mettre manuellement ce qu'il y a dans le tableau dans le fichier txt.
Et ensuite il faut que je prenne mon fichier txt et que je m'en serve pour remplir un nouveau tableau.Tu comprends?
oui ok pour ecrire dans le txt tu fais
FILE * f = fopen("fichier.txt","a+");
for(int i=0;i<SIZE-1;i++)
fprintf(f,"%s",array[i]);
fclose(f);
ca te vas ?
FILE * f = fopen("fichier.txt","a+");
for(int i=0;i<SIZE-1;i++)
fprintf(f,"%s",array[i]);
fclose(f);
ca te vas ?
non
*MesMes[i]=printf ("ùs", chaine);
ne marchera pas la fonction printf renvoi un int qui n'a absolument rien a voir avec ce quelle affiche
*MesMes[i]=printf ("ùs", chaine);
ne marchera pas la fonction printf renvoi un int qui n'a absolument rien a voir avec ce quelle affiche
sophie_m
Messages postés
25
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
5 juin 2008
2
3 juin 2008 à 14:51
3 juin 2008 à 14:51
mince, tu as une autre idée?
oui le seul problème est de savoir la taille chaque ligne que tu dois mettre dans ton tableau
c'est TAILLE_MAX ?
c'est TAILLE_MAX ?
shuya89
Messages postés
470
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
28 novembre 2014
39
3 juin 2008 à 14:56
3 juin 2008 à 14:56
aites un sizeof les gens
sophie_m
Messages postés
25
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
5 juin 2008
2
3 juin 2008 à 14:56
3 juin 2008 à 14:56
non TAILLE_MAX c'est juste la taille d'une ligne.
La taille du tableau je ne la connait pas.
La taille du tableau je ne la connait pas.
shuya89
Messages postés
470
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
28 novembre 2014
39
3 juin 2008 à 14:57
3 juin 2008 à 14:57
et ben sizeof (tableau[numero de ligne])
jai mieu pour lecriture tu fais
FILE * f = fopen("fichier.txt","a+");
for(int i=0;i<SIZE-1;i++)
fprintf(f,"%s",array[i]);
fprintf(f,"\n",);
fclose(f);
et pour la lecture tu n'a plus qu'a faire
while ( fgets (f, TAILLE_MAX,buffer))
{
stcpy(buffer, MesMes[i]);
i++;
}
en faite le fgets s'arrete des qu'il rencontre un un saut de ligne donc tu copie toute la ligne dans buffer et tu la copy dans ton tableau en suite
je pense que ca marche confirme moi
FILE * f = fopen("fichier.txt","a+");
for(int i=0;i<SIZE-1;i++)
fprintf(f,"%s",array[i]);
fprintf(f,"\n",);
fclose(f);
et pour la lecture tu n'a plus qu'a faire
while ( fgets (f, TAILLE_MAX,buffer))
{
stcpy(buffer, MesMes[i]);
i++;
}
en faite le fgets s'arrete des qu'il rencontre un un saut de ligne donc tu copie toute la ligne dans buffer et tu la copy dans ton tableau en suite
je pense que ca marche confirme moi
sophie_m
Messages postés
25
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
5 juin 2008
2
3 juin 2008 à 15:02
3 juin 2008 à 15:02
excusez moi je ne comprend pas tout.
voila un exemple de fichier txt :
"????",/n
"Formatage ......",/n
"CONDUCTEUR :",/n
" PRISE DE SERVICE ",/n
j'ai lu que fgets s'arretait a chaque /n
pourquoi est ce qu'il me faudrai la taille?
voila un exemple de fichier txt :
"????",/n
"Formatage ......",/n
"CONDUCTEUR :",/n
" PRISE DE SERVICE ",/n
j'ai lu que fgets s'arretait a chaque /n
pourquoi est ce qu'il me faudrai la taille?
sophie_m
Messages postés
25
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
5 juin 2008
2
3 juin 2008 à 15:05
3 juin 2008 à 15:05
j'ai une erreur de débutant le compilateur le dit qu'il lui manque le proto
c'est pas void init_tab(); ????
c'est pas void init_tab(); ????
la taille c'est juste une précaution fgets va s'arrêter de lire soit a TAILLE soit a \n
donc met une TAILLE assez grande
pour la petite histoire il faut mettre une taille car tu ne peux pas utiliser la fonction gets() qui elle ne nécessite pas de taille , mais ne vérifie pas la taille de ton buffer et peu aller écrire un peu partout dans ta mémoire donc pas bien donc on utilise Fgets
donc met une TAILLE assez grande
pour la petite histoire il faut mettre une taille car tu ne peux pas utiliser la fonction gets() qui elle ne nécessite pas de taille , mais ne vérifie pas la taille de ton buffer et peu aller écrire un peu partout dans ta mémoire donc pas bien donc on utilise Fgets
sophie_m
Messages postés
25
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
5 juin 2008
2
3 juin 2008 à 15:10
3 juin 2008 à 15:10
ca ne marche pas.
voila mon code :
int init_tab();
#define TAILLE_MAX = 100
void init_tab()
{
int i=0;
char chaine[TAILLE_MAX]="";
FILE * fichier = NULL;
fichier = fopen("essai.txt","r");
if ((fichier !=NULL)
{
while ( fgets (f, TAILLE_MAX,buffer))
{
stcpy(buffer, MesPrt[i]);
i++;
}
fclose(fichier);
}
return(0);
}
voila les erreurs :
"main.c", line 21 pos 7; (W) [ANSI] missing prototype for "init_tab"
"main.c", line 23 pos 6; (W) [ANSI] missing prototype for "init_tab"
"main.c", line 23 pos 6; (E) inconsistent redeclaration of "init_tab"
"main.c", line 26 pos 21; (E) syntax error; unexpected symbol: "="
"main.c", line 27 pos 17; (E) syntax error; unexpected symbol: "="
"main.c", line 30 pos 2; (E) syntax error; unexpected symbol: "{"
"main.c", line 31 pos 27; (E) syntax error; unexpected symbol: "="
voila mon code :
int init_tab();
#define TAILLE_MAX = 100
void init_tab()
{
int i=0;
char chaine[TAILLE_MAX]="";
FILE * fichier = NULL;
fichier = fopen("essai.txt","r");
if ((fichier !=NULL)
{
while ( fgets (f, TAILLE_MAX,buffer))
{
stcpy(buffer, MesPrt[i]);
i++;
}
fclose(fichier);
}
return(0);
}
voila les erreurs :
"main.c", line 21 pos 7; (W) [ANSI] missing prototype for "init_tab"
"main.c", line 23 pos 6; (W) [ANSI] missing prototype for "init_tab"
"main.c", line 23 pos 6; (E) inconsistent redeclaration of "init_tab"
"main.c", line 26 pos 21; (E) syntax error; unexpected symbol: "="
"main.c", line 27 pos 17; (E) syntax error; unexpected symbol: "="
"main.c", line 30 pos 2; (E) syntax error; unexpected symbol: "{"
"main.c", line 31 pos 27; (E) syntax error; unexpected symbol: "="