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 :

Donner des valeurs à Argc et Argv dans le code


Sujet :

C

  1. #21
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par DaZumba
    J'espere que tu es au courant que tu fais du C++ et pas du C. Et en C++, on prefere utiliser les operateurs new et delete que les fonctions malloc() et free(), respectivement. Mais c'est un autre forum...


    Oui effectivement.

    En fait j'ai commencé par faire un exemple en C. Mais par la suite il faut que j'intègre le code de mon main dans un prog c++ (celui dont vient mes var0 à var5) donc j'ai créer un fichier c++ comme tu l'a constaté.

    Dsl j'ai pas pensé quand continuant la dessus le forum n'ést plus le bon.

  2. #22
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par olivier857
    Dsl j'ai pas pensé quand continuant la dessus le forum n'ést plus le bon.
    Ben le probleme, c'est que ce n'est pas du bon C++ et ce n'est plus du C.
    Sinon, il y a une erreur sur ton free: Il faut liberer les param[i] un par un. Ici, tu essaies de liberer param, ce qui n'a pas de sens.

    Egalement, il est inutile d'ajouter '\0' a tes chaines de caracteres. Lorsqu'elles sont codees en dur (i.e. entre "), le compilateur sait qu'il fait ajouter '\0'.

  3. #23
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par DaZumba
    Ben le probleme, c'est que ce n'est pas du bon C++ et ce n'est plus du C.
    Sinon, il y a une erreur sur ton free: Il faut liberer les param[i] un par un. Ici, tu essaies de liberer param, ce qui n'a pas de sens.

    Egalement, il est inutile d'ajouter '\0' a tes chaines de caracteres. Lorsqu'elles sont codees en dur (i.e. entre "), le compilateur sait qu'il fait ajouter '\0'.
    Ok merci c'est noté, je modifie mes free et var.

    Et pour le strdup() je peut avoir un ptit coup de main. Histoire de s'avoir comment ca s'écrit.

  4. #24
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par olivier857
    Et pour le strdup() je peut avoir un ptit coup de main. Histoire de s'avoir comment ca s'écrit.
    C'est tellement simple que...non. A toi de réflechir... Poste ton code si tu as un problème.
    Pas de Wi-Fi à la maison : CPL

  5. #25
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 33
    Points
    33
    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
    int main(void)
    {
      int nb_param;
      char *param[10];
      const char *var0, *var1, *var2, *var3, *var4, *var5;
     
      var0="Appli";
      var1="http://.......";
      var2="Num=295";
      var3="Num2=282";
      var4="Num3=51";
      var5="MonNum=1";
     
      nb_param=4; 
      strdup(param[0],var0);
      strdup(param[1],var1);
      strdup(param[2],var2);
      strdup(param[3],var3);
      param[4]==NULL;
     
      post(nb_param, param);
     
      for (i=0; i < nb_param; i++)
      {
        free(param[i]);
      }  
     
      return 0;
    }
    J'ai bien essayer çà mais j'ai des pb de conversion invalide char* vers const char*

  6. #26
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par olivier857
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int main(void)
      strdup(param[0],var0);
    }
    Il faut cesser de coder au hasard...

    http://man.developpez.com/man3/strdup.3.php
    Pas de Wi-Fi à la maison : CPL

  7. #27
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 33
    Points
    33
    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
    int main(void)
    {
      int nb_param;
      char *param[10];
      const char *var0, *var1, *var2, *var3, *var4, *var5;
     
      var0="Appli";
      var1="http://.......";
      var2="Num=295";
      var3="Num2=282";
      var4="Num3=51";
      var5="MonNum=1";
     
      nb_param=4; 
      param[0]=strdup(var0);
      param[1]=strdup(var1);
      param[2]=strdup(var2);
      param[3]=strdup(var3);
      param[4]=NULL;
     
      post(nb_param, param);
     
      for (i=0; i < nb_param; i++)
      {
        free(param[i]);
      }  
     
      return 0;
    }
    Oui c'est mieux comme çà. Je pourrai peut être même plutot utiliser strdupa vu que j ene précise pas de size.

  8. #28
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 33
    Points
    33
    Par défaut
    Etant donné que j'ai plusieurs post à faire à la suite j'i réécrit moncode un peut différement de façon a séparé les posts dans des fonctions différentes :

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    #include <iostream>
    #include <cstdlib>
    #include <string>
     
    #include "post.h"
     
    using namespace std;
     
    int post_name(char* num1, char* num2,);
    int post_solde(char* num1, char* num2, char* num3, char* num4);
     
    int main(void)
    {
      char *num1, *num2, *num3, *num4;
     
      num1="num1=96";
      num2="num2=280";
      num3="num3=51";
      num4="num4=1";
     
      post_name(num1, num2);
      post_solde(num1, num2, num3, num4);
     
      return 0;
    }
     
    int post_name(char* num1 char* num2)
    {
    	int i, nb_param;
    	char *param[10];
    	char *var0, *var1, *var2, *var3;
     
    	var0="POST NAME";
    	var1="http://...";
    	var2=num1;
    	var3=num2;
     
    	nb_param=4; 
    	param[0]=strdupa(var0);
    	param[1]=strdupa(var1);
    	param[2]=strdupa(var2);
    	param[3]=strdupa(var3);
    	param[4]=NULL; 
     
    	post(nb_param, param);
     
    	for (i=0; i < nb_param; i++)
    	{
    		free(param[i]);
    	}  
     
    	return 0;
    }
     
    int post_solde(char* num1, char* num2, char* num3, char* num4,)
    {
    	int i, nb_param;
    	char *param[10];
    	char *var0, *var1, *var2, *var3, *var4, *var5;
     
    	var0="POST SOLDE";
    	var1="http://...";
    	var2=num1;
    	var3=num2;
    	var4=num3;
    	var5=num4;
     
    	nb_param=6; 
    	param[0]=strdupa(var0);
    	param[1]=strdupa(var1);
    	param[2]=strdupa(var2);
    	param[3]=strdupa(var3);
    	param[4]=strdupa(var4);
    	param[5]=strdupa(var5);
    	param[6]=NULL; 
     
    	post(nb_param, param);
     
    	for (i=0; i < nb_param; i++)
    	{
    		free(param[i]);
    	}  
     
    	return 0;
    }
    Hors j'ai encore un pb de segmentation fault entre les 2 posts. Le premier post passe mais pas le second, etcela peut importe l'ordre dans lequel je fait les 2 posts.

  9. #29
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par olivier857
    Je pourrai peut être même plutot utiliser strdupa vu que j ene précise pas de size.
    Quel rapport ? Je recommande strdup(), pas strdupa().

    Na pas oublier de libérer tout ce qui a été alloué par strdup() quand on en a plus besoin.
    Pas de Wi-Fi à la maison : CPL

  10. #30
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Quel rapport ? Je recommande strdup(), pas strdupa().

    Na pas oublier de libérer tout ce qui a été alloué par strdup() quand on en a plus besoin.

    Ok, pourquoi j'ai oublié de désallouer quelquechose ?
    J'ai pourtant bien fait désalloué tout mes param :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	for (i=0; i < nb_param; i++)
    	{
    		free(param[i]);
    	}

  11. #31
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par olivier857
    Ok, pourquoi j'ai oublié de désallouer quelquechose ?
    J'ai pourtant bien fait désalloué tout mes param :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	for (i=0; i < nb_param; i++)
    	{
    		free(param[i]);
    	}
    Ce qui était complètement faux avec strdupa() mais correct avec strdup().

    alloca()
    Pas de Wi-Fi à la maison : CPL

  12. #32
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Tiens, au sujet d'alloca(), voici une des dernières sottises en date chez Microsoft:
    http://msdn2.microsoft.com/en-us/library/5471dc8s.aspx
    On dirait qu'il y en a qui n'ont pas compris l'intéret que l'intéret d'alloca() c'est justement qu'on n'a pas besoin de free()...
    Enfin au moins, ils n'ont pas mis alloca() en deprecated...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #33
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Médinoc
    Tiens, au sujet d'alloca(), voici une des dernières sottises en date chez Microsoft:
    http://msdn2.microsoft.com/en-us/library/5471dc8s.aspx
    On dirait qu'il y en a qui n'ont pas compris l'intéret que l'intéret d'alloca() c'est justement qu'on n'a pas besoin de free()...
    Enfin au moins, ils n'ont pas mis alloca() en deprecated...
    Je ne vois pas de quoi tu parles. Ils font la différence entre _malloca() qui peut être allouée sur la pile ou le tas qui, dans le doute (ben oui, on ne sait pas) doit être libérée par _freea() qui se débrouille avec, et _alloca() (pile uniquement) qui est le même que le alloca() unixoïde.
    Citation Envoyé par MSDN
    _malloca allocates size bytes from the program stack or the heap if the request exceeds a certain size in bytes given by _ALLOCA_S_THRESHOLD. The difference between _malloca and _alloca is that _alloca always allocates on the stack, regardless of the size. Unlike _alloca, which does not require or permit a call to free to free the memory so allocated, _malloca requires the use of _freea to free memory. In debug mode, _malloca always allocates memory from the heap
    Pas de Wi-Fi à la maison : CPL

  14. #34
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je pensais notamment à ceci:
    Citation Envoyé par MSDN
    This is a version of _alloca with security enhancements as described in Security Enhancements in the CRT.
    D'ailleurs, j'ai comme l'impression que j'étais tombé dessus la première fois en voyant un lien dans l'aide d'alloca(), conseillant d'utiliser malloca() à la place.

    Mais comme je n'en vois plus trace, je peux me tromper (à moins qu'eux-mêmes aient corrigé).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  15. #35
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 33
    Points
    33
    Par défaut
    Ok merci, alors je reste en strdup avec free. Et du coup ca marche nickel.

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    #include <iostream>
    #include <cstdlib>
    #include <string>
     
    #include "post.h"
     
    using namespace std;
     
    int post_name(char* num1, char* num2,);
    int post_solde(char* num1, char* num2, char* num3, char* num4);
     
    int main(void)
    {
      char *num1, *num2, *num3, *num4;
     
      num1="num1=96";
      num2="num2=280";
      num3="num3=51";
      num4="num4=1";
     
      post_name(num1, num2);
      post_solde(num1, num2, num3, num4);
     
      return 0;
    }
     
    int post_name(char* num1, char* num2)
    {
    	int i, nb_param;
    	char *param[10];
    	char *var0, *var1, *var2, *var3;
     
    	var0="POST NAME";
    	var1="http://...";
    	var2=num1;
    	var3=num2;
     
    	nb_param=4; 
    	param[0]=strdup(var0);
    	param[1]=strdup(var1);
    	param[2]=strdup(var2);
    	param[3]=strdup(var3);
    	param[4]=NULL; 
     
    	post(nb_param, param);
     
    	for (i=0; i < nb_param; i++)
    	{
    		free(param[i]);
    	}  
     
    	return 0;
    }
     
    int post_solde(char* num1, char* num2, char* num3, char* num4,)
    {
    	int i, nb_param;
    	char *param[10];
    	char *var0, *var1, *var2, *var3, *var4, *var5;
     
    	var0="POST SOLDE";
    	var1="http://...";
    	var2=num1;
    	var3=num2;
    	var4=num3;
    	var5=num4;
     
    	nb_param=6; 
    	param[0]=strdup(var0);
    	param[1]=strdup(var1);
    	param[2]=strdup(var2);
    	param[3]=strdup(var3);
    	param[4]=strdup(var4);
    	param[5]=strdup(var5);
    	param[6]=NULL; 
     
    	post(nb_param, param);
     
    	for (i=0; i < nb_param; i++)
    	{
    		free(param[i]);
    	}  
     
    	return 0;
    }
    Corrigez moi si e me trompe, mais là je crois que ca devrait etre bon

  16. #36
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Une amelioration qui serait la bienvenue serait de remplacer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	char *var0, *var1, *var2, *var3, *var4, *var5;
    par
    En general, lorsqu'on commence a numeroter les variables, c'est que l'on a besoin d'un tableau.
    Tu peux meme en profiter pour faire l'initialisation directement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    char *var[] = {
                        "POST_SOLDE",
                        "http://...",
                        "num1",
                        "num2",
                        "num3",
                        "num4"
                       };

  17. #37
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par olivier857
    Ok merci, alors je reste en strdup avec free. Et du coup ca marche nickel.
    Pas du C ...
    ... ni du C++...
    Corrigez moi si e me trompe, mais là je crois que ca devrait etre bon
    Commence par choisir clairement ton langage, après on essaiera de lire et éventuellement, de corriger ton code...
    Pas de Wi-Fi à la maison : CPL

  18. #38
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 33
    Points
    33
    Par défaut
    Bon alors fesont ca dans l'ordre effectivement.
    Au final ca sera dans un programme en C++. Ca ca répond au language.

    ----------------------

    Ensuite pour les variables:

    Ce qu'il faut savoir c'est que moi avant de faire le post je récupère çà :

    int num_site, num_pm;
    long num_dossier, num_carte;

    dans :
    - var0 je met "POST NAME" ou "POST SOLDE" en dure
    - var1je met un URL en dure
    - var2 je doit mettre le int num_site précédé de "NumSit=" --> au final : "NumSit=int num_site"
    - var3 je doit mettre le int num_dossier précédé de "NumDos=" --> au final : "NumDos=int num_dossier"
    - var4 je doit mettre le int num_carte précédé de "NumCar=" --> au final : "NumCar=int num_carte"
    - var5 je doit mettre le int num_pm précédé de "NumPm=" --> au final : "NumPm=int num_pm"
    - var6 NULL pour terminer le tableau argv

    Pour var0 et var1 c'est facile
    Pour var1 à 5 je doit faire des conversion pour que mes int et long devienne des char*.
    Pour la conversion j'ai un peu plus de mal, je fé trop compliqué je croit, je sait convertir vers un string mais pas un char*.

  19. #39
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par olivier857
    Au final ca sera dans un programme en C++. Ca ca répond au language.
    Dans ce cas tu n'es plus dans le bon forum... mais je ne conseille pas d'aller dans le forum C++ avec un code pareil - c'est du mauvais C++ "a la C".
    Ce qu'il faut savoir c'est que moi avant de faire le post je récupère çà :

    int num_site, num_pm;
    long num_dossier, num_carte;
    Utilise sprintf() pour creer la chaine de caractere vers laquelle var? pointera. Cela ne t'empeche pas de rassembler les var? dans un seul tableau, cela sera plus simple a maintenir (ajouter ou enlever des var).

  20. #40
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 33
    Points
    33
    Par défaut
    Bon en fait j'arrive a convertir en char * :

    const char *var0, *var1, *var2, *var3, *var4, *var5;
    int num_site, num_pm;
    long num_dossier, num_carte;
    char num_site_ch[10], num_dossier_ch[15], num_carte_ch[10], num_pm_ch[2];

    // Convertie les numéros en char*
    sprintf(num_site_ch,"%d", num_site);
    sprintf(num_dossier_ch,"%l",num_dossier);
    sprintf(num_carte_ch,"%l",num_carte);
    sprintf(num_pm_ch,"%d",num_pm);

    // Convertie les numéros en string
    num_site_str=num_site_ch;
    num_dossier_str=num_dossier_ch;
    num_carte_str=num_carte_ch;
    num_pm_str=num_pm_ch;

    Mais je n'arrive pas a concaténer les chaine en suite :

    // Début de chaine
    var2="NumSit=";
    var3="NumDos=";
    var4="NumCar=";
    var5="NumPm=";

    //Concaténation avec des débuts d echaine avec les numéros :
    strcat(param[2],num_site_ch); -> ca plante
    var2+=num_site_str; -> ca plante
    ????????


    Voilà j'ai essayé pas mal de chose, mais ca me parait pas propre et compliqué. j'espères que je vais pas vous faire crier.

Discussions similaires

  1. recupérer des valeurs d'un fichier dans un tableau de string
    Par Kansuke dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 07/04/2008, 13h54
  2. Réponses: 11
    Dernier message: 28/02/2008, 10h44
  3. Réponses: 13
    Dernier message: 27/11/2007, 11h06
  4. Réponses: 3
    Dernier message: 21/05/2007, 15h37
  5. Réponses: 1
    Dernier message: 19/03/2006, 20h52

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