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

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

    Informations forums :
    Inscription : août 2013
    Messages : 267
    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
    ...
    Inscrit en
    juin 2009
    Messages
    4 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : ...

    Informations forums :
    Inscription : juin 2009
    Messages : 4 256
    Points : 12 686
    Points
    12 686
    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
    6 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 6 040
    Points : 26 944
    Points
    26 944
    Billets dans le blog
    2
    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
    ...
    Inscrit en
    juin 2009
    Messages
    4 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : ...

    Informations forums :
    Inscription : juin 2009
    Messages : 4 256
    Points : 12 686
    Points
    12 686
    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
    Expert éminent sénior

    Avatar de Neckara
    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    décembre 2011
    Messages
    8 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    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 : 8 050
    Points : 20 334
    Points
    20 334
    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.
    "Parce que le diable est dans les détails, une vision sans nuance ne peut prétendre à la compréhension du monde."

    Mon ancienne page perso : https://neckara.developpez.com/

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

    Informations forums :
    Inscription : août 2013
    Messages : 267
    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
    ...
    Inscrit en
    juin 2009
    Messages
    4 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : ...

    Informations forums :
    Inscription : juin 2009
    Messages : 4 256
    Points : 12 686
    Points
    12 686
    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 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2004
    Messages : 2 740
    Points : 2 652
    Points
    2 652
    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
    Expert éminent sénior

    Avatar de Neckara
    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    décembre 2011
    Messages
    8 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    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 : 8 050
    Points : 20 334
    Points
    20 334
    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" ?
    "Parce que le diable est dans les détails, une vision sans nuance ne peut prétendre à la compréhension du monde."

    Mon ancienne page perso : https://neckara.developpez.com/

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

    Informations forums :
    Inscription : novembre 2004
    Messages : 2 740
    Points : 2 652
    Points
    2 652
    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
    Expert éminent sénior

    Avatar de Neckara
    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    décembre 2011
    Messages
    8 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    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 : 8 050
    Points : 20 334
    Points
    20 334
    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.
    "Parce que le diable est dans les détails, une vision sans nuance ne peut prétendre à la compréhension du monde."

    Mon ancienne page perso : https://neckara.developpez.com/

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

Discussions similaires

  1. [php] Créer un fichier avec fopen
    Par fadeninev dans le forum Fichiers
    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 IO
    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