Declaration d'un tableau de fichiers

insaf1 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
svp comment peut on creer un tableau de fichiers et comment peut on ecrire dans ces fichiers
j'ai developé ce code
for (i=1;i<=m;i++)
{
F[i]= fopen ("fic.txt","w");
fprintf(F[i],"c'est le fichier i",i++);
printf("le fichier %d",i+1);
scanf ("%d",&F[i]);
if (F[i] != NULL)
{
fprintf(F[i],"c'est le fichier i",i++);

}
else
perror("fic.txt");
}
pouvez vous me proposer des solutions
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Pour espérer obtenir de l'aide, il est conseillé de faire usage de politesse. Enlever le bonjour automatique ne donne pas envie d'aider.

Sinon un tableau en C commence à 0 donc tu dois revoir ton for.
Dans ton code tu écris dans le même fichier. Est-ce que tu souhaites ? Merci de nous en dire plus.
Cdlt
0
empirekro Messages postés 31 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, je relance le sujet parce que j'ai le même problème.

J'ai réussi (non sans mal :)) à saisir n valeurs dans un tableau nombres[i].
Je voudrais faire une boucle "for" pour créer n fichiers et y placer mes n nombres.
Ca donnerait un truc du style


#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[]))
{
int* nombres[] = argv[1];
char nombre[5];

for (i=0;i<=n-1;i++) /*pour chaque nombre du tableau nombre[], on crée le fichier, on écrit le nombre, on ferme le fichier*/
{
FILE* fichierNombre;
if (fichierNombre == NULL)
{
i--; /*on recommence la boucle pour ce nombre*/
}

fichierNombre = fopen(/*et là...*/,"w+"); /*un truc comme "fichierNombre" + valeur_de_i,".txt"*/

snprintf(nombre,5,"%d",nombre[i]);
fputs(nombre, fichierNombre); /*et bien sûr...*/
fclose(fichierNombre);
}
return(0);
}

J'ai tenté de bidouiller mon nom de fichier avec un truc du style
/*à rajouter avant la boucle*/
char *nom, mon[2];

/*à rajouter dans la boucle avant le fopen*/
nom = "fichierNombre";
snprintf(mon,2,"%d",i);
strcat(nom,mon);
strcat(nom,".txt");

/*remplacer le fopen par*/
fichierNombre = fopen(nom,"w+");

Evidemment, ça ne fonctionne pas et gdb me renvoie un signal "SIGSEV" dans un fichier dont j'ai découvert l'existence en même temps que j'ai vu l'erreur (../sysdeps/i386/i686/multiarch/strcat-ssse3.S) du style /*nomDuFichierAInsulter*/ : Aucun fichier ou dossier de ce type.

Quelqu'un aurait-il une piste à me soumettre?
Merci à ceux qui voudront bien se pencher sur la question.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,
Ce n'est pas exactement le même problème.
Merci d'ouvrir ton propre post :-).
0