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 :

ifstream et dossier courant


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 183
    Par défaut ifstream et dossier courant
    Bonjour,

    Je cherche a "lire" un fichier comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    ifstream ReadConversion ("POS.txt",ios::in);
    Sauf que mon fichier POS est avec mon .exe ( j'entends par là, dans le meme dossier), et que entre temps mon dossier courant n'est plus le dossier contenant mon .exe

    j'ai tenté un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    char*Buffer = (char*) calloc (sizeof(char),1024);
    GetFullPathName("NomdeMonProg.exe",1024,Buffer2,NULL);
    SetCurrentDirectory(Buffer);
    ifstream ReadConversion ("POS.txt",ios::in);
    Mais ca fait juste planter mon programme qui ne trouve sans doute pas ce fichu fichier .txt...



    qqn a une idée de quel est mon ultime betise?

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Attention, d'un côté tu utilises Buffer, d'un autre Buffer2...

    De plus, tu devrais utiliser new char[] et delete[] plutôt que calloc() et free()...
    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.

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 183
    Par défaut
    euh oui oups pour buffer2, dans mon prog c'est correct..

    free() ? je supppose que je ne l'utilise pas celui là et que j'ai tord... enfin il faut que j'utilise son confrere delete[]..

    jvais aller voir comment ca marche et puis sinon je reviens ... tu le sais maintenant

    je suppose que si je tape:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    char*Buffer2 = new char[sizeof(char),1024];
    GetFullPathName("NomDeMonProg.exe",1024,Buffer2,NULL);
    SetCurrentDirectory(Buffer2);
     
    ifstream ReadConversion ("POS.txt",ios::in);
     
    delete Buffer2;
    C'est faux...

  4. #4
    Membre éclairé Avatar de gelam
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 69
    Par défaut
    He oui, il a deux erreurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    char*Buffer2 = new char[1024];
    GetFullPathName("NomDeMonProg.exe",1024,Buffer2,NULL);
    SetCurrentDirectory(Buffer2);
     
    ifstream ReadConversion ("POS.txt",ios::in);
     
    delete[] Buffer2;

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 183
    Par défaut
    Erreur corrigée mais ca plante toujours au moment de lire... boite de dialogue en mode " loup glacé" enfin lol... pas trop lol quoi....

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 183
    Par défaut
    un pti up parceque j'aimerais bien résoudre ce probleme...

    a vot bon coeur msieur dam

    ah et je tente aussi de changer le dossier courant pour pouvoir ouvrir un fichier excel, mais ca ne marche pas non plus...

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

Discussions similaires

  1. probleme pour recuperer le chemin du dossier courant
    Par HoB dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 11/08/2007, 11h22
  2. [DOS] nom du dossier courant en batch ?
    Par budhax dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 01/04/2007, 09h27
  3. Appel d'une Dll dans le dossier courant.
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/07/2006, 21h00
  4. [DOS] récupérer le chemin absolu du dossier courant
    Par seiryujay dans le forum Windows
    Réponses: 1
    Dernier message: 14/06/2006, 14h58
  5. Réponses: 2
    Dernier message: 19/09/2005, 17h20

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