Comment créer plusieurs fichiers à la suite?
Résolu
empirekro
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
empirekro Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
empirekro Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
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
J'ai tenté de bidouiller mon nom de fichier avec un truc du style
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.
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.
A voir également:
- Comment créer plusieurs fichiers à la suite?
- Comment créer un groupe whatsapp - Guide
- Comment réduire la taille d'un fichier - Guide
- Créer un compte google - Guide
- Creer un fichier .bat - Guide
- Comment créer un compte gmail - Guide
2 réponses
Bonjour
Ton idée est bonne, mais quand tu fais nom = "fichierNombre"; tu fais pointer nom sur une zone allouée par le compilateur et qui contient "fichierNombre". Mais tu ne sais pas ce qu'il y a après cette zone, donc pas question d'écraser ce qu'il y a après avec tes strcat !
Il faut que tu te réserves une zone à toi dans laquelle tu vas fabriquer le nom de fichier, que tu peux très bien créer en un seul sprintf au lieu de plusieurs stract :
Ton idée est bonne, mais quand tu fais nom = "fichierNombre"; tu fais pointer nom sur une zone allouée par le compilateur et qui contient "fichierNombre". Mais tu ne sais pas ce qu'il y a après cette zone, donc pas question d'écraser ce qu'il y a après avec tes strcat !
Il faut que tu te réserves une zone à toi dans laquelle tu vas fabriquer le nom de fichier, que tu peux très bien créer en un seul sprintf au lieu de plusieurs stract :
char nom[50];
...
sprintf(nom,"%s%d%s","FichierNombre",i,".txt");
...