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 :

lire un fichier avec fopen mais en mettant une variable dans le chemin d'acces


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Points : 56
    Points
    56
    Par défaut lire un fichier avec fopen mais en mettant une variable dans le chemin d'acces
    bonjour a vous ,vous qui me lirez
    le titre veut tout dire , j'espere que ce sera assez claire pour vous.
    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
     
    #include<iostream>
    #include<stdio.h>
    using namespace std;
    int main(){
    FILE*fichier=NULL;
    char s[20]="Desktop";
     
    fichier=fopen("c:\\Users\\user\\"%s"\\fichier.txt",s,"r");
    if(fichier){
    cout<<"le fichier est  ouvert"<<endl;
    }
    }
    le probleme est avec fichier=fopen....
    il me met une erreur , pour etre franc je m'en doutais , quand j'ai ecris ca , ca fesait assez bizarre..
    j'ai regardé sur internet et a parement je dois inserer un snprintf mais je coince , je dois creer une variable du genre d=snprintf(mettre mon chemin d'acces ) et ensuite mettre fopen(d)?
    si vous pouviez m'eclairer et me donner un exemple ca serait parfait , merci d'avance
    ps : soyer pas trop dur avec moi je debute dans la programmation

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Tu as déjà la réponse à ta question.

    PS : pour un exemple de snprintf()

  3. #3
    Membre régulier Avatar de Mipwiq
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 42
    Points : 81
    Points
    81
    Par défaut
    je dois creer une variable du genre d=snprintf(mettre mon chemin d'acces ) et ensuite mettre fopen(d)?
    C'est plus ou moins ça, si tu regardes le man de sprintf tu peux voir qu'il revoit le nombre de caractères écrits, ce n'est pas ce que tu veux avoir, il faut que tu lui passe en paramètre la chaine de caractère que tu veux remplir, le texte à mettre et si il le faut des paramètres supplémentaire (comme printf).

    Ici ça donnerait quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    FILE  *fichier;
    char  s[20] = "Desktop";
    char  path[SIZE];// où SIZE est la taille du chemin + celle de s
     
    if (sprintf(path, "c:\\Users\\user\\%s\\fichier.txt",s) == 0)
      return ; // en cas d'erreur on arrête
    // ici on a écrit comme le ferais printf dans un terminal, mais dans la chaine path 
     
    fichier = fopen(path, "r");
    etc...
    Voilà et si jamais tu as un problème avec une fonction, pour savoir s' il est possible de passer tel ou tel paramètre, regarde son manuel tu trouveras plus rapidement ta réponse.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Bonsoir,

    quitte à vouloir faire du C++, autant en faire pour de vrai.
    std::fstream et std::string
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Le sujet était à l'origine dans le forum C mais comme ça sentait le C++, je l'ai déplacé en espérant que les connaisseurs C++ donnent des solutions plus adaptées. Exactement comme tu viens de le faire Bousk, merci

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    Citation Envoyé par Bousk Voir le message
    Bonsoir,

    quitte à vouloir faire du C++, autant en faire pour de vrai.
    std::fstream et std::string
    Comme le titre du sujet parle de "variable" en général et non uniquement de string, je me permet de rajouter std::stringstream.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Points : 56
    Points
    56
    Par défaut merci a tous :)
    ca marche alors merci c'est sympa de m'avoir aidé a charge de revanche peut etre un jour :p

  8. #8
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Merci de cliquer sur le bouton en bas de l'écran pour marquer la discussion comme telle.

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Citation Envoyé par Neckara Voir le message
    Comme le titre du sujet parle de "variable" en général et non uniquement de string, je me permet de rajouter std::stringstream.
    Je crois que stringstream est (très) coûteux.

  10. #10
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Citation Envoyé par oodini Voir le message
    Je crois que stringstream est (très) coûteux.
    La lecture de fichier est "très coûteuses", je ne penses donc pas que stringstream soit critique ou "trop coûteux" en comparaison.

    Ensuite, qu'entends-tu par "très coûteux" ?

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Citation Envoyé par Neckara Voir le message
    La lecture de fichier est "très coûteuses", je ne penses donc pas que stringstream soit critique ou "trop coûteux" en comparaison.
    C'est vrai que dans ce cas précis, mon propos n'était pas forcément pertinent.
    Mais si tu on se situe dans un cas général, il est bon d'avoir à l'esprit le coût des stringstreams par rapport aux fonctions C.

    Citation Envoyé par Neckara Voir le message
    Ensuite, qu'entends-tu par "très coûteux" ?
    J'avais un lien qui présentait des comparaisons, mais je ne le trouve plus.
    En revanche, j'ai celui-là.

  12. #12
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    23 fois plus lent, ce n'est pas grand chose ici surtout que ce n'est pas vraiment le but de stringstream de convertir des string en int.

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

Discussions similaires

  1. [php] Créer un fichier avec fopen
    Par fadeninev dans le forum Langage
    Réponses: 2
    Dernier message: 13/06/2006, 16h50
  2. Réponses: 7
    Dernier message: 07/01/2006, 15h18
  3. Réponses: 1
    Dernier message: 19/12/2005, 17h09
  4. Lire un fichier avec un charset UTF8
    Par Sonic dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/05/2005, 19h37
  5. [ZIP]besoin de lire des fichiers avec l'extension tar.gz
    Par mathieublanc13 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 24/05/2004, 13h35

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