Declaration d'un tableau de fichiers

insaf1 Messages postés 1 Statut Membre -  
fiddy Messages postés 441 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

2 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
  2. empirekro Messages postés 32 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
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Bonjour,
      Ce n'est pas exactement le même problème.
      Merci d'ouvrir ton propre post :-).
      0