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 :

Impossible d'ouvrir le fichier


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Impossible d'ouvrir le fichier
    Bonjour je suis bloqué au niveau de l'ouverture d'un fichier... J'ai d'abord utilisé fopen puis ifstream mais non on m'envoie toujours la même erreur: "Aucun fichier ou dossier de ce type" je précise que mon programme marche en c. J'utilise Qt creator. Je sais plus quoi faire aider moi svp

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    #include <iostream>
    #include "cerrno"
    #include "cstring"
    #include <cstdio>
    #include <cstdlib>
    using namespace std;
     
     
     FILE *fichier;
    int ***Data;
     
    typedef struct
    {
      int size_x;
      int size_y;
      int size_z;
      int longueur;
      unsigned char*  data_name;
    } Image;
     
    typedef Image *P_Image;
    P_Image picture;
    char *buffer;
     
    int main()
    {
        cout << "Hello World!" << endl;
     
        fichier = fopen("shepplogan.pgm3D", "r") ;// lecture du fichier
    if(fichier== NULL)
    {
        printf("\n\n\nerror can t open the file:%s\n",strerror(errno));
        exit(EXIT_FAILURE);
    }
        fseek(fichier, 5, SEEK_SET); // le curseur se positionne apres 'PGM3D'
        fscanf(fichier, "%d %d %d", &(picture->size_x), &(picture->size_y), &(picture->size_z)); // lecture taille de l'image
        picture->longueur=(picture->size_x)*(picture->size_y)*(picture->size_z);
     
        //le constructeur aloue la memoire pour le fichier
        int ***Data=(int ***)malloc(picture->size_x*sizeof(int**));
     
         for(int i= 0; i < picture->size_x; i++)
         {
           Data[i]= (int **)malloc(picture->size_y*sizeof(int*));
             for(int j= 0; j < picture->size_y; j++)
             {
     
                 Data[i][j]= (int *)malloc(picture->size_z*sizeof(int));
             }
         }
     
         fscanf(fichier,"%s",buffer);
         printf("taille de l'image : %d, %d, %d, \n ", picture->size_x, picture->size_y, picture->size_z );
         printf("longueur= %d \n", picture->longueur);
         printf("magic number=%s\n",buffer);
     
     
         //enregistrement des donnees de fileName.pgm3D dans Data
         for (int i=0; i < picture->size_x; i++)
         {
            for (int j=0; j < picture->size_y; j++)
            {
                for (int z=0; z < picture->size_z; z++)
                {
                    fscanf(fichier,"%s",buffer);
                    Data[i][j][z]=atoi(buffer);
                     /* TEST
                    indice++;
                    if(indice==224229)
                    printf("data=%d\n",data[i][j][z]);*/
                }
            }
         }
     
         fclose(fichier);
     
        return 0;
    }
    Qt utilise qmake pour compiler y a-t-il des ajouts à faire dans le fichier .pro ou faut il placer le fichier à ouvrir ailleurs que au niveaux de l'exécutable ?


    merci d'avance

  2. #2
    Membre chevronné
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 855
    Points : 2 176
    Points
    2 176
    Par défaut
    Comme tu utilises QtCreator, j'aurais tendance a penser que le fichier que tu cherches n'est pas dans le même dossier que ton exécutable. Essaye en mettant le chemin complet de ton fichier. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fopen("C:/folder/little_folder/your_file", "r");

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 8
    Points : 1
    Points
    1
    Par défaut MERCI !!!
    Bon bon bon je ne te défoncerais pas la gueule tu l'as bien mérité

    Sa marche mais je comprends pas pourquoi il veut le chemin complet. Surtout que le problème a l'air de venir seulement de QT en ligne de commande sa marche bien.

    En tout cas merci bien tu m'enlèves une grosse aiguille

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Lorsqu'on lance le programme par l'IDE celui-ci se fait par la racine, il faut donc mettre le fichier à cet endroit, contrairement à quand tu le lances directement par la console (ou cliquant sur l'exe) où il faut le mettre à côté.

    PS : On appui sur le bouton en dessous au lieu de modifier le titre.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Globalement le problème est celui de la rigueur dans le packaging...notes que ton exécutable ne fonctionnera que sur ton ordinateur, à condition que tu gardes bien tes sources au même endroit...
    Pour une solution plus viable à long terme, tu as deux possibilités:
    1) l'emplacement relatif des deux fichiers est toujours le même (tu ouvres une ressource -> dans ce cas mets un chemin relatif et recherche le paramétrage de l'IDE qui te permet de jouer sur le répertoire de travail quand tu lances depuis l'IDE
    2) c'est un fichier de données dont l'emplacement peut varier -> récupères le chemin complet du fichier dans les paramètres de ligne de commande (là encore tu peux paramétrer les arguments transmis à ton executable quand tu lances depuis l'IDE)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/08/2008, 21h19
  2. Réponses: 7
    Dernier message: 20/01/2007, 19h00
  3. Impossible d'ouvrir un fichier access
    Par squale32 dans le forum Access
    Réponses: 4
    Dernier message: 13/09/2006, 12h26
  4. impossible d'ouvrir le fichier
    Par michel71 dans le forum Langage
    Réponses: 8
    Dernier message: 05/05/2006, 11h20
  5. IE : impossible d'ouvrir un fichier
    Par alexixlebaulois dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 23/12/2005, 11h08

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