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 :

Problème avec fonctions et string/char


Sujet :

C++

  1. #1
    Membre averti Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Points : 369
    Points
    369
    Par défaut Problème avec fonctions et string/char
    Bonjour, j'essaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::string path = dialog.GetPath().mb_str();
    unsigned int test = infoFile(path,"nbmaillage");
    Mais il me dit:
    103 E:\magic\VMM\unix_interface\interface.cpp no matching function for call to `MyFrame::infoFile(std::string&, const char[11])'


    Voici ma fonction:

    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
     
    template <class T>
    T MyFrame::infoFile(std::string &chemin, std::string &info) {
        size_t size = chemin.size() + 1;
        char * buffer = new char[size];
        strncpy(buffer, chemin.c_str(), size);
        MG_FILE fichier(buffer);
        switch (info) {
               case "nbmaillage":
                    return fichier.get_nb_mg_maillage();
               case "idmaillage":
                    // traité ultérieurement (sera codé plus tard)
                    break;
               default: break;
        }
    }
    J'ai essayer avec des const char* et des char* mais ca ne fonctionne pas

    Merci de m'éclairer.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Il faut prendre en paramètre une référence constante si tu veux pouvoir passer des temporaires non nommés (comme "nbmaillage").

    Par ailleurs, je ne sais pas si tu as simplement fait trop vite ton copier/coller, mais tu as un paramètre template T qui n'est spécifié nulle part lors de l'appel, et tu as une fonction retournant un T qui parfois ne renvoie rien (pas de return partout).

    Enfin, c'est assez beurk de passer des std::string en paramètre pour finalement les recopier dans tes tableaux de char...

    Bon allez encore un : un switch sur un std::string ne compilera jamais (valeur entières seulement). Voir la FAQ pour plus de détails.

  3. #3
    Membre averti Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Points : 369
    Points
    369
    Par défaut
    Merci pour la réponse,

    Je sais qu'il manque des return je n'ai pas compléter la fonction encore.

    Mais je vois pas ce que tu veux dire avec le paramètre template T qui n'est spécifié nul part???

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Ben T n'est jamais construit, on ne sait même pas ses caractéristiques, rien, il est inutile - comme le H de Hawaï -

  5. #5
    Membre averti Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Points : 369
    Points
    369
    Par défaut
    Hum, il me permet de créer une fonction qui peut renvoyer plusieurs types?

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Hum... Si tu pensais renvoyer un truc différent dans chaque case, et que le fait de renvoyer un T ferait magiquement fonctionner le tout, alors non, ce ça ne marche pas comme ça.

    Après, peut-être que ma supposition est mauvaise et que ce que tu veux faire n'a rien à voir.

  7. #7
    Membre averti Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Points : 369
    Points
    369
    Par défaut
    Ouais euh désolé je crois que j'avias besoin d'un solide rafraichissement sur les templates.

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

Discussions similaires

  1. Problème avec fonction
    Par Goundy dans le forum C
    Réponses: 24
    Dernier message: 01/10/2005, 20h17
  2. [MFC][WINSOCK] Problème avec fonction recv
    Par Le Farfadet dans le forum MFC
    Réponses: 4
    Dernier message: 23/09/2005, 11h00
  3. Problème avec fonction d'envoie de mail
    Par zyg dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 23/02/2005, 08h48
  4. probléme avec une date/string dans un CommandText
    Par critok dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/02/2005, 15h30
  5. [Requête] Problème avec fonction "DATE_FORMAT()"
    Par sekiryou dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/01/2005, 21h52

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