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 -
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
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
-
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
-
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.