Lire un fichier dont le nom est une variable
Sarah
-
Sarah -
Sarah -
Bonsoir tou le monde
Mon probléme et comment lire ou ecrire dans un fichier si le nom de ce fichier est une variale.
puisque dans mon programe je génére un ensemble de fichiers, je ne sais pas au préalable le nombre de fichier que j'ai
les nom de mes fichier je les stock dans un tableau par exemple tableau[0] il vas me donné le nom du premier fichier et ainssi de suite alors pour lire mes fichier j'ai ecrit ceci
// nb_fichier et le nombre de fichier que j'ai
for(i=0;i<nb_fichier;i++)
tableau[i]= fopen(tableau[i], "r");
for(j=0;j<nb_ligne;j++)
{
fscanf(tableau[i], "%f %f", &f3, &f4);
}
fclose(tableau[i]);
Bon cela ne marche pas est ce que vous avez une idée comment faire
Merci beaucoup
Mon probléme et comment lire ou ecrire dans un fichier si le nom de ce fichier est une variale.
puisque dans mon programe je génére un ensemble de fichiers, je ne sais pas au préalable le nombre de fichier que j'ai
les nom de mes fichier je les stock dans un tableau par exemple tableau[0] il vas me donné le nom du premier fichier et ainssi de suite alors pour lire mes fichier j'ai ecrit ceci
// nb_fichier et le nombre de fichier que j'ai
for(i=0;i<nb_fichier;i++)
tableau[i]= fopen(tableau[i], "r");
for(j=0;j<nb_ligne;j++)
{
fscanf(tableau[i], "%f %f", &f3, &f4);
}
fclose(tableau[i]);
Bon cela ne marche pas est ce que vous avez une idée comment faire
Merci beaucoup
A voir également:
- Lire un fichier dont le nom est une variable
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire un fichier epub - Guide
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
1 réponse
Bonjour,
tableau[i] est un nom de fichier, donc une chaine de caractères.
Si tu regardes la déclaration de fopen dans la doc, tu verras :
FILE *fopen(const char *pathname, const char *type);
Donc fopen renvoie un type FILE* ;
Donc ton instruction est incorrecte : tableau[i]= fopen(tableau[i], "r");
Car tu récupère une chaine de caractères.
Tu devrais faire :
FILE *monFichier;
monFichier=fopen(....etc...
Et surtout, pense à tester le résultat du fopen au cas où le fichier est inexistant, ou un problème d'ouverture survient :
if (!monFichier)
{
// gestion de l'erreur d'ouverture du fichier
}
Cordialement, M.
tableau[i] est un nom de fichier, donc une chaine de caractères.
Si tu regardes la déclaration de fopen dans la doc, tu verras :
FILE *fopen(const char *pathname, const char *type);
Donc fopen renvoie un type FILE* ;
Donc ton instruction est incorrecte : tableau[i]= fopen(tableau[i], "r");
Car tu récupère une chaine de caractères.
Tu devrais faire :
FILE *monFichier;
monFichier=fopen(....etc...
Et surtout, pense à tester le résultat du fopen au cas où le fichier est inexistant, ou un problème d'ouverture survient :
if (!monFichier)
{
// gestion de l'erreur d'ouverture du fichier
}
Cordialement, M.
Pareil pour fscanf et fclose ; l'argument n'est pas une chaine contenant le nom du fichier, mais bien l'objet FILE* (qui est une sorte de 'descripteur' du fichier == 'handle' en english)
Tu as parfaitement raison ma fonction doit me retourné un fichier, Bon moi j'ai besoin de lire plusieur fichier en méme temps, je pense que j'ai une idée comment le faire, je déclare un pointeur vers le premier fichier, je met le contenu de mon fichier dans un tableau et dans une autre étération de la boucle le meme pointeur ce point vers un autre fichier. comme ca je peut recopier le contenu de tous mes fichiers dans un tableau.
je vais essayer de faire ca et je vais te dire si j'ai réussi ou pas
Merci encore pour ton aide.