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 :

Problème ouverture fichier dans en utilisant visual studio 10 C++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 21
    Par défaut Problème ouverture fichier dans en utilisant visual studio 10 C++
    Bonjour,

    J'utilise un code en C++ pour ouvrir un fichier et lire son contenu.
    Le code est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      ifstream inFile;
      inFile.open("Pat6.rcp", ios ::in);
      if(!inFile)
        {
          cout<<"Probleme d'ouverture du fichier "<< endl;
          exit(1);
        }
      //Lire 1er element de la 1ere ligne du fichier (nombre de noeuds)
      inFile >> n;
    Le problème c'est que en essayant d’exécuter ce code dans un projet C++ en utilisant Visual Studio 10 C++ il n'arrive pas à ouvrir le fichier, il m'afficher toujours:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Probleme d'ouverture du fichier
    Alors qu'en utilisant g++ sous UNIX j'arrive à exécuter ce code et à ouvrir le fichier.

    Je suis perdu car je vois pas d’où vient l'erreur sous Visaul studio 10.
    Je vous remercie de votre aide.

    Nadia

  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
    Ton code utilise un chemin de fichier relatif. As-tu vérifié le répertoire d'exécution?
    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 averti
    Inscrit en
    Septembre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 21
    Par défaut
    Je vous remercie pour votre réponse.
    En fait, comme je viens de commencer dernièrement à utiliser visual studio sous windows je connais pas grand chose.
    Est ce que je dois mettre le fichier a ouvrir dans le dossier qui contient le projet ? (chose que j'ai faite) ou est ce que je dois définir le chemin d’accès dans le code C++?
    Merci

  4. #4
    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
    Le plus simple: Utiliser la fonction _getcwd() pour faire afficher le répertoire de travail par le programme lui-même, mettre le fichier dans ce répertoire.

    Sinon: Dans les propriétés du projet, le plus souvent à l'onglet Debugging, il doit y avoir une section "répertoire de travail" pour dire dans quel répertoire doit s'exécuter le programme quand on le lance depuis Visual.
    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.

  5. #5
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 21
    Par défaut Autre question
    Je vous remercie pour votre réponse.
    Donc a ce que j'ai compris je dois mettre le fichier a lire dans ce répertoire de travail que je trouve avec _getcwd()?

    J'ai une autre question s'il vous plaît, j'ai un soucis avec l'affichage du résultat en console, en effet la console apparait pour quelques secondes puis disparait.
    D'habitude j'arrive en utilisant getchar() de la faire apparaitre d'une façon permanente mais ça marche plus.
    Comment dois-je procéder ?
    Merci

  6. #6
    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
    Si ça disparaît même avec getchar(), c'est que ton buffer clavier n'est pas vide quand du l'atteint.
    Généralement, c'est parce que tu n'as pas fini de lire la ligne en cours, soit suite à un scanf("%d"), soit suite à un fgets() où l'utilisateur a tapé plus que ton buffer pouvait accepter.

    La solution, c'est une fonction pour finir de lire la ligne en cours. On la trouve souvent sur le forum, généralement sous le nom fpurge().
    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.

  7. #7
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 21
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Le plus simple: Utiliser la fonction _getcwd() pour faire afficher le répertoire de travail par le programme lui-même, mettre le fichier dans ce répertoire.

    Sinon: Dans les propriétés du projet, le plus souvent à l'onglet Debugging, il doit y avoir une section "répertoire de travail" pour dire dans quel répertoire doit s'exécuter le programme quand on le lance depuis Visual.
    Bonjour,
    En utilisant la fonction _getcwd() de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //Trouver le repertoire de travail pour exécution
    	char *buffer;
        //Get the current working directory
        if( (buffer = _getcwd( NULL, 0 )) == NULL)
            perror("_getcwd error");
        else
        {
            printf("%s \n", buffer);
        }
    Le code me retourne le répertoire de travail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Users\...\Desktop\ProjetMILP\test\test
    Le problème c'est que en mettant le fichier a ouvrir dans ce répertoire il n'arrive pas a le lire non plus.
    Le code ne généré pas d'erreurs mais lors de l’exécution de ce bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ifstream inFile;
      inFile.open("Pat6.rcp", ios ::in);
      if(!inFile)
        {
          cout<<"Probleme d'ouverture du fichier "<< endl;
          exit(1);
        }
    Le test d'ouverture échoue et la réponse est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Probleme d'ouverture du fichier
    Appuyez sur une touche pour continuer...
    A votre avis ça peut être du a quoi ?

    J'utilise le visual studion C++ 2010 version 64 bits sous windows 8 pour plus d'informations.

    Je vous remercie pour votre réponse.

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

Discussions similaires

  1. Utiliser MATLAB dans un IDE Visual Studio
    Par sdecorme dans le forum MATLAB
    Réponses: 2
    Dernier message: 02/10/2013, 07h08
  2. Utiliser GNU gettext dans un projet visual studio c++
    Par sentza dans le forum Débuter
    Réponses: 1
    Dernier message: 08/01/2012, 19h20
  3. Réponses: 1
    Dernier message: 02/03/2011, 20h29
  4. Installer un Web-Service (fichier executable) dans un site visual-Studio
    Par Tardiff Jean-François dans le forum Services Web
    Réponses: 3
    Dernier message: 13/12/2010, 15h30
  5. Réponses: 10
    Dernier message: 08/08/2008, 11h58

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