oui, le fichier que tu crois être au bon endroit n'y est pas …
De plus, s'il y a une erreur (et apparemment il y en a une) alors le retour de fopen est NULL et errno ne doit pas être nul d'après la doc de fopen que tu as sans doute lue.
Cette erreur : «No such file or directory» tu l'as obtenue comment ? avec perror ?
Tu es sous quel environnement ?
où se trouve ton fichier, comment essayes-tu de l'ouvrir, où le cherches-tu (le chemin est-il relatif ou absolu), as-tu les droits d'accéder au fichier, … ?
Parce qu'avec juste ton message il me faudrait une bonne boule de cristal et des dons de voyances pour apporter une réponse adéquate.
if (fichier == NULL){
printf("Erreur : %s\n",strerror(errno));
exit(EXIT_FAILURE);
}
Quand je mets un chemin relatif (le nom du fichier car il est dans le même dossier que mon main), fopen me retourne NULL
Quand je met le chemin absolu (ce que je ne dois pas faire car il ne sera pas au même endroit lors des test de mon prof), fopen ouvre un fichier mais il semble vide car fgets ne lit rien.
Je programme en C99 avec Clion
edit : fgets lit correctement les lignes mais strsep me retourne en boucle des pointeurs null.
Mon problème principal actuellement c''est que je ne peux pas ouvrir le fichier avec un chemin relatif
le fichier est au bon endroit, je mets le bon nom à chaque fois.
Pour que ça fonctionne comme tu le souhaite il faut que le répertoire courant soit celui de l'exécutable. Or ce n'est peut-être pas le cas si tu exécutes ton code depuis un EDI.
Si tu accèdes à un fichier sans en donner le chemin absolu, c'est donc un chemin relatif.
Mais relatif à quoi? C'est relatif à ce que l'on appelle le "répertoire courant". Le "répertoire courant" peut être changé à tout moment, il vaut par défaut le "répertoire de travail".
Le "répertoire de travail" c'est quoi?C'est normalement l'endroit d'où est lancé le programme. Ça dépend donc de comment Clion lance ton programme.
Il y a aussi le "répertoire de l'exécutable" qui n'est pas forcément égal au "répertoire de travail".
Autrement dit, si tu ne spécifies pas un chemin absolu, ça n'est pas simple de savoir où le fichier sera recherché! Ton prof veut mettre les fichiers là où il veut, mais alors à lui de dire comment retrouver ce répertoire, pose lui la question. Il y a des tas de moyens de résoudre cela, mais si c'est un exercice, l'énoncé doit te fournir cette information. Ça peut être : le prof se charge d'avoir les fichiers dans le "répertoire de travail", et alors ton code marchera chez lui. Et pour qu'il marche chez toi, il faut mettre ces fichiers dans le "répertoire de travail" de Clion.
Le "répertoire de travail" qu'utilise Clion, il est où? Ça je ne le sais pas. Pour beaucoup d'IDE c'est le "répertoire du projet" qui est peut-être le répertoire au dessus du "répertoire des sources" celui où il y a les fichiers sources de ton programme.
Hum le répertoire courant c'est le répertoire de travail (working directory)
Qui au début d'une session correspond au HOME directory, qui contient les petites affaires d'un utilisateur.
Fopen refuse d'ouvrir un fichier
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
En recherche d'emploi.
git is great because Linus did it, mercurial is better because he didn't.