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 :

fonction créant problème (court)


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Gilles57-H-G
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 88
    Par défaut fonction créant problème (court)
    Bonjour .Je veux traduire cette fonction VB en C++.

    La fonction VB renvoie une chaine de caractères. Collez cette fonction dans un module Openoffice, cela revoi un Texte box. Le résultat est dans: strRes.

    Code VB : 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
    23
    24
    Public Function CombineAJako()
    Dim strRes As String
     
    fnCombine "12", 2, "", 0, 2, strRes
    ''''Testez fnCombine "1234", 4, "", 0, 4, strRes
    MsgBox strRes
     
    End Function
     
    Sub fnCombine(ByVal strVal As String, ByVal iLgStrVal As Integer, strWord As String, ByVal iLg As Integer, ByVal iTargetLg As Integer, ByRef strRes As String)
    Dim i As Integer
    Dim c As String
     
    If (iLg = iTargetLg) Then
    strRes = strRes + strWord + ", "
    Exit Sub
    End If
     
    For i = 1 To iLgStrVal
    c = Mid(strVal, i, 1)
    fnCombine strVal, iLgStrVal, strWord + c, iLg + 1, iTargetLg, strRes
    Next i
     
    End Sub


    Voici maintenant la fonction en C++, elle ne fonctionne pas.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    #include <cstdlib>
    #include <iostream>
    #include <stdio.h>
    #include <cstring>
    #include <string> 
    #include <fstream>
    using namespace std;
     
    void fnCombine(string strVal, int iLgStrVal, string strWord, int iLg, int iTargetLg, string strRes);
     
    int main(int argc, char *argv[])
    {
        string strRes;
        strRes = "";
     
        fnCombine("12", 2, "", 0, 2, strRes);
     
       /// ++--Testez---++//// fnCombine("1234", 4, "", 0, 4, strRes);
     
    	cout<<strRes;
     
        system("PAUSE");
        return EXIT_SUCCESS;
     
       }
     void fnCombine(string strVal, int iLgStrVal, string strWord, int iLg, int iTargetLg, string strRes)
    		{
    		int i ;
    		string c ;
     
     
    			if (iLg == iTargetLg)
    			{
    				strRes = strRes + strWord + ", ";
    			return  ;	
    			}
     
    			for (i = 1; i < iLgStrVal; i++)
    			{
    			   c = strVal.substr (i- 1, 1); 
    			   fnCombine(strVal, iLgStrVal, strWord + c, iLg + 1, iTargetLg, strRes);
    		                                                                                	}
     
    		}

  2. #2
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 103
    Par défaut
    Salut,

    Déja pourrais tu mettre des balises [code] ainsi qu'edenter le code permet une meilleure visibilité.

    Il faut que tu passes le dernier string par référence. Sinon au retour, tu n'auras pas ton résultat

  3. #3
    Membre confirmé Avatar de Gilles57-H-G
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 88
    Par défaut
    Le string est une chaine de caractère, sous VB, elle se retrouve dans : strRes.

    Je ne sais pas la récupérer, dans la fonction.

    C'est la valeur strRes que je cherche, modifié par la fonction et ses paramètres.
    (Ce sont les seuls commentaires que j'ai laissé)

    VB et C++, fonctionnerais différemment, VB modifierai strRes, C++ non.

    Les fonctions étant sans retour (void)

  4. #4
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 103
    Par défaut
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    #include <cstdlib>
    #include <iostream>
    #include <stdio.h>
    #include <cstring>
    #include <string> 
    #include <fstream>
    using namespace std;
     
    void fnCombine(string strVal, int iLgStrVal, string strWord, int iLg, int iTargetLg, string &strRes);
    	
    int main(int argc, char *argv[])
    {
        string strRes;
        strRes = "";
        
        fnCombine("12", 2, "", 0, 2, strRes);
     
       /// ++--Testez---++//// fnCombine("1234", 4, "", 0, 4, strRes);
       
    	cout<<strRes;
     
        system("PAUSE");
        return EXIT_SUCCESS;
     
       }
     void fnCombine(string strVal, int iLgStrVal, string strWord, int iLg, int iTargetLg, string &strRes)
    		{
    		int i ;
    		string c ;
     
     
    			if (iLg == iTargetLg)
    			{
    				strRes = strRes + strWord + ", ";
    			return  ;	
    			}
     
    			for (i = 1; i < iLgStrVal; i++)
    			{
    			   c = strVal.substr (i- 1, 1); 
    			   fnCombine(strVal, iLgStrVal, strWord + c, iLg + 1, iTargetLg, strRes);
    		                                                                                	}
     
    		}

  5. #5
    Membre confirmé Avatar de Gilles57-H-G
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 88
    Par défaut



    Super, cela a avancé, maintenant j'ai un string qui apparait.

    Mais il manque des combinaisons, par rapport à la version VB je vais voir si je ne me suis pas planté, en traduisant.

    Pourtant j'ai déjà contrôle, j'ai transformé le Mid en .substr, et j'ai vérifié la concaténation.

    Merci encore

  6. #6
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 103
    Par défaut
    Citation Envoyé par Gilles57-H-G Voir le message



    Super, cela a avancé, maintenant j'ai un string qui apparait.

    Mais il manque des combinaisons, par rapport à la version VB je vais voir si je ne me suis pas planté, en traduisant.

    Pourtant j'ai déjà contrôle, j'ai transformé le Mid en .substr, et j'ai vérifié la concaténation.

    Merci encore
    Tu peux indiquer les deux sorties que tu as suivant le langage ?

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

Discussions similaires

  1. Problème avec une fonction créant des requêtes
    Par scarabeous dans le forum Access
    Réponses: 11
    Dernier message: 16/07/2008, 14h10
  2. [RegEx] Fonction preg_match problème
    Par wylls dans le forum Langage
    Réponses: 2
    Dernier message: 13/12/2006, 17h06
  3. [Fonction](recursive) Problème pour dresser un arbre
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 21/11/2006, 13h35
  4. Fonction ASP: problème avec popup
    Par claralavraie dans le forum ASP
    Réponses: 6
    Dernier message: 07/02/2006, 10h31
  5. histoire de fonction avec problème sur arguments
    Par bébé dans le forum Langage
    Réponses: 5
    Dernier message: 07/01/2006, 11h29

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