Fopen(...,"a") ne crée pas le fichier [Résolu]

Messages postés
29
Date d'inscription
mardi 24 février 2009
Dernière intervention
10 juillet 2009
- - Dernière réponse : hl037
Messages postés
3
Date d'inscription
dimanche 15 novembre 2009
Dernière intervention
10 avril 2016
- 22 mars 2010 à 22:42
jour,

J'ai un problème avec fopen. Je l'utilise en mode append pour pouvoir créer le fichier s'il n'existe pas et écrire à la suite de celui-ci s'il existe déjà. Seulement voilà, si j'utilise un chemin relatif pour le créer (fopen("./debug.txt","a") ou même juste fopen("debug.txt","a")), le fichier n'est pas créé. Il n'est créé que si j'utilise un chemin absolu (fopen("H:\debug.tx","a")). Le soucis est que je dois pouvoir utiliser mon programme en chaine dans plusieurs dossiers et je dois donc créer mon debug.txt dans chacun de ces dossiers...

Pourriez-vous m'aider s'il vous plait ?

Merci d'avance ;)
Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
Messages postés
14289
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
14 décembre 2018
3
Merci
Avec fopen("debug.txt","a"), ça ne marche tout simplement pas ^^

--> ou bien ça ne crée pas le fichier où tu attends... regarde ton répertoire courant au moment où tu fais ton fopen()

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de BunoCS
Messages postés
29
Date d'inscription
mardi 24 février 2009
Dernière intervention
10 juillet 2009
1
Merci
C'est bon j'ai trouvé !!!


Après un scan total du serveur du service de ma boîte, j'a trouvé que mon fichier était bien créé sur un serveur qui m'était caché en lecture (mais pas en écriture, allez comprendre), puisque c'est celui duquel mon invite de commande était lancé. La racine contenait bien un petit fichier debug.txt. Le mal est maintenant réparé et je peux continuer mon code ^^


 


Merci à tous pour votre aide !!!
Commenter la réponse de guiltyspark
Messages postés
29
Date d'inscription
mardi 24 février 2009
Dernière intervention
10 juillet 2009
0
Merci
Des coquilles se sont glissées dans mon précédent post :

- fopen(".\debug.txt","a") et non pas fopen("./debug.txt","a")

- fopen("H:\debug.txt","a") et non pas fopen("H:\debug.tx","a")

Et bien sûr : Bonjour, et non pas jour,

Désolé ^^
Commenter la réponse de guiltyspark
Messages postés
14289
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
14 décembre 2018
0
Merci
Hello,
Essaie plutôt ça:
.\debug.txt --> debug.txt tout court
H:\debug.txt --> H:\\debug.txt

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
Messages postés
29
Date d'inscription
mardi 24 février 2009
Dernière intervention
10 juillet 2009
0
Merci
Ces coquilles, je ne les avais pas vues ^^

J'ai essayé déjà : avec fopen("H:\\debug.txt","a"), ca marche mais je voudrais passer un chemin relatif  pour pas que tous les fichiers soient créés au même endroit...

Avec fopen("debug.txt","a"), ça ne marche tout simplement pas ^^
Commenter la réponse de guiltyspark
Messages postés
29
Date d'inscription
mardi 24 février 2009
Dernière intervention
10 juillet 2009
0
Merci
Déjà fait un scan complet de l'ordinateur, aucun debug.txt :/...
Commenter la réponse de guiltyspark
Messages postés
14289
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
14 décembre 2018
0
Merci
Alors le problème est ailleurs car, avec l'option "a", fopen() crée le fichier s'il n'existe pas.
Possibilité:
- pas les droits d'écriture
- erreur dans le nom/chemin du fichier
- erreur à la fermeture de fichier

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
Messages postés
1
Date d'inscription
samedi 4 juillet 2009
Dernière intervention
9 juillet 2009
0
Merci
fopen("adebug.txt","a+");

option 'a' signifies append ajoute les donners au fichier

 rajoute un plus + signifie rajoute des donners si il existe
sinon  le + plus cree un fichier si il existe pas...

-=Insane=-
Commenter la réponse de abandonware
Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Dernière intervention
25 avril 2011
0
Merci
Salut,
D’après «man 3», "a+" c’est pour ouvrir le fichier en lecture également ; "a", comme "a+", crée le fichier s’il n’existe pas.
En cas d’erreur, fopen renvoie NULL et renseigne errno. «man 2 open» indique tout plein de sources d’échec.
Tu peux te servir de «perror» (stdio.h) pour afficher un message peut-être utile.

Bonne prog,
Commenter la réponse de cs_Chouchou182
Messages postés
1055
Date d'inscription
samedi 2 octobre 2004
Dernière intervention
9 juillet 2013
0
Merci
Salut
Regarde le retour de la fonction fopen. Si c'est NULL, alors la fonction fopen a échoué.
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Commenter la réponse de Pistol_Pete
Messages postés
29
Date d'inscription
mardi 24 février 2009
Dernière intervention
10 juillet 2009
0
Merci
Buno :
Possibilité:
- pas les droits d'écriture ->  Ben si vu que quand je fais fopen("H:\\debug.txt","a"), ça marche :/...
- erreur dans le nom/chemin du fichier -> Je ne vois pas comment je pourrais me planter là-dedans ...
- erreur à la fermeture de fichier -> il est bien fermé à la fin du programme vu que quand je mets le chemin en statique, ca fonctionne...

Chouchou182 :
J'ai aussi essayé avec a+ mais ca ne fonctionne pas non plus si je ne mets pas le chemin en absolu

Chouchou182 & Pistol_Pete :
Le retour de la fonction n'est pas NULL, j'ai tenté un perror si le retour était NULL mais rien ne s'affiche, j'en conclue que le fichier s'ouvre donc bien :/...

Merci de votre aide les gens :)
Commenter la réponse de guiltyspark
Messages postés
14289
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
14 décembre 2018
0
Merci
Postes-nous ton code, pour qu'on regarde exactement.
ça m'intrigue ton truc..

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
Messages postés
14289
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
14 décembre 2018
0
Merci
Aahh...je savais bien que c'était un problème de path
N'oublie pas de cliquer sur "réponse acceptée" si ton problème est résolu

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
Messages postés
3
Date d'inscription
dimanche 15 novembre 2009
Dernière intervention
10 avril 2016
0
Merci
Alors, moi j'ai un probleme vraiment bizarre:
quad je fais mon fopen [..] fclose sans passer d'argument au prog, tout marche, mais dés que je pass en argument quoi que ce soit, le fichier ne veut plus s'enregistrer...
un prog tout con comme ça:
int main(int argc, char* argv[])
{
FILE *f;
f=fopen("test.txt");
fprintf(f,"Salut!");
fclose(f);
system("PAUSE");
return 0;
}
Merci de vos reponse(s)!
Commenter la réponse de hl037

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.