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 :

Cmt passer mon tableau d'une méthode à mon prog de test ?


Sujet :

C++

  1. #1
    Membre habitué

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Points : 175
    Points
    175
    Par défaut Cmt passer mon tableau d'une méthode à mon prog de test ?
    Slt tout le monde !

    Voilà, j'aimeré savoir comment passer mon tableau de caractères d'une méthode à mon programme applicatif.

    Voila un exemple de ske j'aimeré faire
    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
     
    - Méthode
    char LireUnCaractere()
    {
         char Tablo[160];
     
         ...
         ...
         ...
         return Tablo;
    }
    - Programme
    {
         ...
         char TabRecu[160];
         ...
         TabRecu = LireUnCaractere();
         ...
    }
    Voila ske j'aimeré faire, j'ai essayé pr la méthode avec un *char, mais rien a faire...

    Pourriez-vous me dire la synthaxe pour ma méthode, ce quelle doit retourner et comment récupéré le tableau ds mon prog

    MERCI

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    utilise std::string ?


  3. #3
    Membre habitué

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Points : 175
    Points
    175
    Par défaut
    C'est à dire, tu enttend quoi par la ? std::string ?

  4. #4
    jmv
    jmv est déconnecté
    Membre confirmé Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Points : 603
    Points
    603
    Par défaut Re: Cmt passer mon tableau d'une méthode à mon prog de test
    salut,

    bienvenue à toi sur ce forum mais sache que le style sms n'est très apprécié ici.

    Pour ton problème, utilise la classe string
    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
    22
     
    #include <string>
    using namespace std;
     
    - Méthode
    string LireUnCaractere()
    {
         string Tablo;
     
         ...
         ...
         ...
         return Tablo;
    }
    - Programme
    {
         ...
         string TabRecu;
         ...
         TabRecu = LireUnCaractere();
         ...
    }

  5. #5
    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
    N'oubliez pas de regarder dans la FAQ avant de poster...

    http://c.developpez.com/faq/cpp
    http://c.developpez.com/faq/cpp/?page=strings


  6. #6
    Membre habitué

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Points : 175
    Points
    175
    Par défaut
    Merci de m'avoir répondu Mais celà ne fonctionne toujours pas.

    Voilà j'utilise Borland Builder C++ 6 et lorsque je compil mon projet, il m'indique une erreur à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TabRecu = LireUnCaractere();
    L'erreur est la suivante :
    [C++ Erreur]Unit1.cpp(29): E2277 Lvalue nécessaire

    Voilà, à quoi correspond cette erreur svp ?

  7. #7
    jmv
    jmv est déconnecté
    Membre confirmé Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Points : 603
    Points
    603
    Par défaut
    une Lvalue (L comme left) c'est quelque chose qui peut être placé à gauche de l'opérateur =.
    Comment tu déclare TabRecu ? montre un peu plus de code.

  8. #8
    Membre habitué

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Points : 175
    Points
    175
    Par défaut
    Voilà plus de détail sur ma méthode (Application créer avec builder c++ 6)

    Voilà la méthode déclaré dans le .h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    public :
    char *PortSerie::LireUnCaractere();
    ...
    Voilà la définition de la méthode dans le .cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ...
    char *PortSerie::LireUnCaractere()
    {
            char Tab[160];
            int i;
            for(i=0;i<160;i++)
                    Tab[i]='a';
            return Tab;
    }
    ...
    Voilà le programme de test (où se trouve l'erreur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void main()
    {
            char TabRecu[160];
            ...
            TabRecu=LireUnCaractere();
    }
    J'ai une erreur "[C++ Erreur]Unit1.cpp(29): E2277 Lvalue nécessaire "sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             TabRecu=LireUnCaractere();
    Comment puis-je corriger cette erreur ?
    PS : En fesant un #include "string.h", cela ne corrige pas l'erreur

  9. #9
    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
    - Tu ne peux pas renvoyer de tableau comme ceci.
    - Si on te conseille d'utiliser std::string ce n'est pas pour t'embêter, c'est vraiment pour te faciliter le boulot.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <string>
     
    std::string PortSerie::LireUnCaractere()
    {
        return std::string('a', 160);
    }
     
    void main()
    {
        PortSerie Port;
        std::string TabRecu = Port.LireUnCaractere()
    }

  10. #10
    Membre habitué

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Points : 175
    Points
    175
    Par défaut
    Merci @toi

    Sinon, ce programme va me servir dans mon projet de BTS (gestion d'une station météo)

    Donc j'aimerais savoir pourquoi ceci marche, en rajoutant std::string

    Quel est le role de std::string ? QQ1 peut m'expliquer svp

  11. #11
    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
    http://c.developpez.com/faq/cpp/?page=strings

    Tu devrais y trouver toutes les réponses à tes questions.

    Concernant ton problème, tu ne pouvais pas procéder comme tu le faisais car tu renvoyais un pointeur sur un tableau déclaré localement, qui est donc détruit dès la fin de ta fonction. Il aurait fallu renvoyer une nouvelle chaine fraîchement allouée (avec new), ou passer en paramètre un tableau de char suffisamment grand et le remplir, ou encore d'autres manips pas vraiment conseillées en C++. std::string a une sémantique de valeur, tu peux donc copier / assigner / ... en toute tranquilité ses instances, en l'occurence ici tu peux en renvoyer un en retour de fonction sans te soucier d'une quelconque gestion de la mémoire.

  12. #12
    Membre habitué

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Points : 175
    Points
    175
    Par défaut
    ok ben merci pr toute ces réponses

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

Discussions similaires

  1. Utiliser propriété de mon objet dans une méthode callback ?
    Par StringBuilder dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/11/2014, 10h08
  2. Comparer deux colonnes adjacentes une à une sur mon tableau?
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/12/2007, 10h11
  3. Réponses: 7
    Dernier message: 26/04/2007, 12h04
  4. [Tableaux] Passer un tableau dans une requête HTTP ??
    Par haffouff dans le forum Langage
    Réponses: 2
    Dernier message: 09/05/2006, 17h17
  5. passer un tableau a une procedure stockee
    Par graphicsxp dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/04/2005, 11h39

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