IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Mon fichier est introuvable


Sujet :

C

  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut Mon fichier est introuvable
    Bonsoir,

    Je ne comprends pas, j'essaie d'ouvrir un fichier, ce fichier existe mais à chaque fois, il me dit que le fichier n'existe pas.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <BasicConsole.h>
     
    int main()
     
    {
            FILE*  Fichier;
     
            Fichier = fopen("PlanEx2.txt","rt");
     
            if(Fichier==NULL)
            {
                    printf("le fichier n'existe pas");
            }
     
    return 0;
    }
    Auriez-vous une idée ?

    Je vous en remercie d'avance.

    beegees

  2. #2
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    dans ton fopen il y'a "rt", je ne connais pas le paramètre "t", je me trompe ?

    r
    Ouvre le fichier en lecture. Le pointeur de flux est placé au début du fichier.
    r+
    Ouvre le fichier en lecture et écriture. Le pointeur de flux est placé au début du fichier.
    w
    Ouvre le fichier en écriture. Le fichier est créé s'il n'existait pas. S'il existait déjà, sa longueur est ramenée à 0. Le pointeur de flux est placé au début du fichier.
    w+
    Ouvre le fichier en lecture et écriture. Le fichier est créé s'il n'existait pas. S'il existait deja, sa longueur est ramenée à 0. Le pointeur de flux est placé au début du fichier.
    a
    Ouvre le fichier en écriture. Le fichier est créé s'il n'existait pas. Le pointeur de flux est placé à la fin du fichier.
    a+
    Ouvre le fichier en lecture et écriture. Le fichier est créé s'il n'existait pas. Le pointeur de flux est placé à la fin du fichier.

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Salut,

    "t" pour du texte.

    Je suis sûr que ça fonctionne avec t car j'ai un autre programme qui fonctionne.

    Je ne comprends vraiment pas ce qu'il se passe, c'est très étrange.

    beegees

  4. #4
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    C'est pas plutôt "b" (sous windows du moins) pour du binaire et rien pour du "texte" (Je me trompe peux etre ca doit dépendre du system).

    Cela dis fopen() retourne NULL mais pas forcement si il ne trouve pas le fichier. Regarde l'erreur exacte que retourne fopen

  5. #5
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    j'ai essayé sans le t, le résultat est le même.

    beegees

  6. #6
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    Et tu es sur que "errno" te dis bien que le fichier n'existe pas ?
    Ou bien alors il n'arrive pas à l'ouvrir ?

  7. #7
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par |PaRa-BoL Voir le message
    Et tu es sur que "errno" te dis bien que le fichier n'existe pas ?
    Ou bien alors il n'arrive pas à l'ouvrir ?
    C'est quoi errno ?

    Loaded 'ntdll.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\user32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\gdi32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\imm32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\advapi32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\rpcrt4.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\entapi.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msvcrt.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\psapi.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\netapi32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\version.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msctfime.ime', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msvcrt.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\ole32.dll', no matching symbolic information found.
    The thread 0x8CC has exited with code 0 (0x0).
    The thread 0xF9C has exited with code 0 (0x0).
    The program 'Z:\Graduat\C\Cours 2007-2008\03 10 07\Devoir\Plan\PlanEx2\Debug\PlanEx2.exe' has exited with code 0 (0x0).

  8. #8
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738

  9. #9
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    fopen va donc chercher le fichier dans le répertoire courant qui ne doit donc pas être le même que celui dans tu cherche le fichier...

    Tu peux recuperer le code erreur errno ou ferror()pour en être sur...

    Pour |PaRa-BoL, le "t" dans le mode n'est pas défini dans la norme mais se retrouve souvent dans différentes implémentations pour les flux texte...
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  10. #10
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    C'est exactement cela le problème, le fichier n'était pas dans le bon directory (erreur de débutant qui ne se reproduira plus).

    Un super grand merci à vous tous.

    beegees

  11. #11
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par vicenzo Voir le message
    Pour |PaRa-BoL, le "t" dans le mode n'est pas défini dans la norme mais se retrouve souvent dans différentes implémentations pour les flux texte...
    C'est donc par définition pas portable, pourquoi donc l'utiliser si il existe une alternative standard (i.e. "r" tout court).

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  12. #12
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Je l'utilise car on me l'a enseigné mais c'est en venant ici que j'apprends que ce n'est pas standard.

    Merci pour tout.

    beegees

  13. #13
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par vicenzo Voir le message
    fopen va donc chercher le fichier dans le répertoire courant qui ne doit donc pas être le même que celui dans tu cherche le fichier...

    Tu peux recuperer le code erreur errno ou ferror()pour en être sur...

    Pour |PaRa-BoL, le "t" dans le mode n'est pas défini dans la norme mais se retrouve souvent dans différentes implémentations pour les flux texte...
    Comment tu sais que ce n'étais pas le bon répertoire, on peut le voir quelque part dans les info que j'ai donné ?

    beegees

  14. #14
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    Non mais c'est l'erreur la plus bête Ca arrive
    The thread 0xF9C has exited with code 0 (0x0).
    Ca signifie juste que tu fait un "return 0;"

  15. #15
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Comment tu sais que ce n'étais pas le bon répertoire, on peut le voir quelque part dans les info que j'ai donné ?
    Par experience, si fopen renvoie NULL, dans 99, 9% des cas, soit il n'existe pas soit c'est pas le bon répertoire... Et comme tu disais qu'il existait...

    Pour Thierry Chappuis, je suis entierement d'accord avec toi... la norme, et rien que la norme... Je ne lui ai pas dis de l'utiliser mais je voulais seulement lui dire qu'il risque parfois de le rencontrer et donc qu'il ne soit pas surpris !!
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  16. #16
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    La fonction POSIX getcwd() (ou _getcwd() sous Visual) permet d'obtenir le répertoire courant.
    Affiche-le pour vérifier que tu es bien au bon endroit...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/05/2010, 11h50
  2. pourquoi mon fichier est-il passé de 200 k à 8M?
    Par nath-0-0 dans le forum Excel
    Réponses: 7
    Dernier message: 12/05/2010, 17h54
  3. Mon fichier est il un lien symbolique ?
    Par gobgob dans le forum Langage
    Réponses: 2
    Dernier message: 29/09/2008, 00h15
  4. Comment m'assurer que mon fichier est bien un exec unix
    Par Khaled.Noordin dans le forum Apple
    Réponses: 5
    Dernier message: 05/07/2007, 18h37
  5. Réponses: 6
    Dernier message: 19/11/2006, 00h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo