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 :

concaténation en C++?


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 127
    Par défaut concaténation en C++?
    la concatenation ca existe en C++???

    genre j'ai deux define
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #define PATH "C:\\repertoire" 
    #define Rep "\\dossier\\fichier.txt"
    et faire PATH + Rep ca passe pas la compil et je trouve pas d'info la dessus?
    donc est-ce possible de concatener??

  2. #2
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    c'est pas une chaine qui tu concatènes c'est un tableau de caractères, ce qu'il ne sait pas faire. JE te proposes ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string  PATH = "C:\\repertoire";
    PATH +=  "\\dossier\\fichier.txt";

  3. #3
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut
    2 possibilités:
    -> strcat (mais je ne suis pas sûr que ça fonctionne sur des variables définies par des #define)
    -> faire les choses correctement: remplacer les #define par des const std::string

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par r0d
    2 possibilités:
    -> strcat (mais je ne suis pas sûr que ça fonctionne sur des variables définies par des #define)
    #define ne définit pas des variables mais des macros (et je ne vois pas trop l'intérêt de macros plutôt que de constantes ici). strcat ne fonctionne pas avec les littéraux. La simple juxtaposition fonctionne avec les littéraux, mais ce n'est pas quelque chose que je conseillerais quand ces littéraux sont cachés dans des macros différentes.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 127
    Par défaut
    Merci pour vos reponse, alors j' ai appliquer vos conseils donc declarer la const string = "chemin".
    Toutefois, il se passe qqch d etrange, en effet lorsque je veux ouvrir un flux en lecture sur (PATH + Rep).c_str() eh bien ca ne marche pas. Alors que si je mets le chemin de ainsi :
    "c:\\repertoire\\dossier\\fichier.txt"
    ca marche parfaitement!

    C'est bizarre je comprend pas trop pourquoi????

  6. #6
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    eh bien c'est quoi ton code ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 127
    Par défaut
    voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    PATH = "c:\\repertoire";
    DescriptionFile = "\\Dossier\\fichier.txt";
     
    ifstream FileIn((PATH + DescriptionFile).c_str());// comme ca ca marche pas
     
    ifstream FileIn("c:\\repertoire\\Dossier\\fichier.txt"); // la ca marche!!
    Merci

  8. #8
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Utilises des string. Il n'y a pas d'opérateur de concaténation sur les char*.

    PS: les streams du C++ comprennent très bien les chemins à base de "/" plutôt que de "\\". Même sous dos et dérivés.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

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

Discussions similaires

  1. Concaténation de 2 select en 1 seul
    Par Fleep dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/08/2003, 11h38
  2. Char(x) -> chaine concaténée d'espaces ?
    Par rgz dans le forum Débuter
    Réponses: 7
    Dernier message: 27/06/2003, 11h59
  3. Concaténation vertical ???
    Par loaded dans le forum Langage SQL
    Réponses: 10
    Dernier message: 07/05/2003, 15h44
  4. Concaténer TStrings
    Par Tuxxy dans le forum Composants VCL
    Réponses: 8
    Dernier message: 07/03/2003, 12h30
  5. Concaténation de String et Integer
    Par Ingham dans le forum Langage
    Réponses: 5
    Dernier message: 21/01/2003, 17h26

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