Declaration d'un tableau de fichiers

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

2 réponses

  1. Contributeur
    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
    1. 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
      1. Contributeur
        Bonjour,
        Ce n'est pas exactement le même problème.
        Merci d'ouvrir ton propre post :-).
        0