Lire un fichier dont le nom est une variable

Fermé
Sarah - 4 mai 2010 à 13:42
 Sarah - 5 mai 2010 à 12:57
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





A voir également:

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.
0
Pour précision :
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)
0
Merci beaucoup swed

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.
0
Merci swed pour ton aide mon probléme est réglé
0