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 :

ouverture de fichier


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 102
    Par défaut ouverture de fichier
    bonjours a tous

    mon probleme est le suivant

    j'aimerais avoir une variable de type chainee exemple:
    char nomdefichier;

    cette variable sera saisi par l'utilisateur

    mon probleme etant que je voudrais selon le choix de l'utilisateur
    ouvrir le fichier qu'il demande

    exemple ma variable
    nomdefichier="dessin"

    j' aimerais faire un truc du genre
    fp=fopen("jeu/acces/"nomdefichier"","r");
    il faut que j'ouvre

    fp=fopen("jeu/acces/dessin","r");

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Par défaut
    Si j'ai bien compris tu veux concaténer le nom du fichier donné par l'utilisateur au chemin d'accès défini en dur ? strcat devrait faire ton affaire.

    Exemple non testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include <stdlib.h>
    #include <string.h>
     
    FILE* ouvrir(char* user_file)
    {
      char filename[FILENAME_MAX] = "jeu/acces/";
      strcat(filename, user_file);
      return(fopen(filename, "r"));
    }

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Je vois pas de problème, si j'ai bien compris, tu demande à l'utilisateur de saisir un chemin d'un fichier que ton programme doit ouvrir c'est ca ?

    Si c'est ca, bin tu possède alors un tableau de taille suffisante pour contenir la chaîne, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char chemin [100] /* ou plus c'est toi qui vois */
    Pour récupérer la saisie utilisateur, il te suffit d'utiliser la fonction fgets en prennant le soin, une fois la récupération de faite, de virer le '\n' s'il existe en fin de chaîne et tu le remplaces alors par un '\0' !

    La saisie tu la récupère depuis le flux stdin !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 102
    Par défaut
    j'ai essayer vos methodes mais ca ne marche pas

    quelqu'un aurait'il une autre solution

  5. #5
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Si tu nous montrais ton code l'aide arriverai plus vite je pense

  6. #6
    Membre émérite Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Par défaut
    j'ai essayer vos methodes mais ca ne marche pas
    Pas d'autre solution tu veux concaténer 2 chaines de caractères
    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 <iostream.h> 
          #include <string.h> 
     
          void main() 
          { 
             char* fin = "le C++"; 
             char debut1[100]; 
             char debut2[100]; 
             strcpy(debut1, "On aime bien "); 
             strcpy(debut2, "On n'aime pas "); 
     
             strcat(debut2, fin); 
     
             cout << debut1 << endl; 
             cout << debut2 << endl;
    }

  7. #7
    Membre émérite Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Par défaut
    Citation Envoyé par Jérémy Lefevre
    Pas d'autre solution tu veux concaténer 2 chaines de caractères
    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 <iostream.h> 
          #include <string.h> 
     
          void main() 
          { 
             char* fin = "le C++"; 
             char debut1[100]; 
             char debut2[100]; 
             strcpy(debut1, "On aime bien "); 
             strcpy(debut2, "On n'aime pas "); 
     
             strcat(debut2, fin); 
     
             cout << debut1 << endl; 
             cout << debut2 << endl;
    }
    Nous sommes dans un forum sur le langage C.
    Le forum C++, c'est à côté.

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Jérémy Lefevre
    Pas d'autre solution tu veux concaténer 2 chaines de caractères
    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 <iostream.h> 
          #include <string.h> 
     
          void main() 
          { 
             char* fin = "le C++"; 
             char debut1[100]; 
             char debut2[100]; 
             strcpy(debut1, "On aime bien "); 
             strcpy(debut2, "On n'aime pas "); 
     
             strcat(debut2, fin); 
     
             cout << debut1 << endl; 
             cout << debut2 << endl;
    }
    Pas du C...

    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
     
      #include <stdio.h>
      #include <stdlib.h> 
      #include <string.h> 
     
    int main( void ) 
          { 
             char* fin = "le C++"; 
             char debut1[100]; 
             char debut2[100]; 
             strcpy(debut1, "On aime bien "); 
             strcpy(debut2, "On n'aime pas "); 
     
             strcat(debut2, fin); 
             strcat (debut1, fin); 
     
             fprintf ( stderr, "%s\n", debut1 );
             fprintf ( stderr, "%s\n", debut2 );
     
            return EXIT_SUCCESS ;
    }

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Par défaut
    Il serait surtout pas mal de savoir à quel niveau réside le problème. Pour récupérer la saisie utilisateur ? Pour concaténer les 2 chaînes ? Pour ouvrir le fichier une fois les chaînes concaténées ?

    Sinon une autre méthode pour la concaténation est sprintf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      char filename[FILENAME_MAX];
      sprintf(filename, "jeu/acces/%s", user_file);

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

Discussions similaires

  1. ouverture de fichier txt
    Par juguul dans le forum MFC
    Réponses: 11
    Dernier message: 18/12/2003, 09h44
  2. Ouverture de fichier en api
    Par Michaël dans le forum Windows
    Réponses: 9
    Dernier message: 10/12/2003, 16h47
  3. Ouverture de fichier
    Par Ricou.13 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/10/2003, 08h59
  4. Réponses: 2
    Dernier message: 26/02/2003, 15h18
  5. [VBA-E] Evenement ouverture de fichier
    Par gjeff dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/12/2002, 09h42

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