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 de conversion de types


Sujet :

C++

  1. #1
    Membre chevronné Avatar de Rayndell
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 289
    Par défaut Problème de conversion de types
    Bonjour !

    Je suis un débutant en C, et dans le projet que je dois réaliser il est nécessaire d'utiliser du C++ afin d'envoyer des informations par des sockets. Mon problème vient du fait de l'utilisation des arguments passés en ligne de commande. Un petit programme qui contient juste une fonction main comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int main(const char* const argv[]){
     
    ...
     
    }
    Et dedans j'utilise les arguments :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sin.sin_addr.s_addr = inet_addr(argv[0]);
    sin.sin_port = htons((int) &argv[1]);
    Mon problème est le suivant : je n'arrive pas à convertir correctement mes arguments argv[0] et argv[1]. argv[0] doit être de type char[] et argv[1] de type int.

    Si vous savez comment convertir correctement ces arguments, merci d'avance de vos réponses.

  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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    argv[0] est déjà de type char*, et pour convertir argv[1] en int jette un oeil à la FAQ C++, tout est expliqué.

    Par contre attention : argv[0] est souvent le nom ou le chemin de l'exécutable, le premier véritable paramètre est donc dans argv[1] (cf. FAQ C).

  3. #3
    Membre chevronné Avatar de Rayndell
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 289
    Par défaut
    C'est patché. Déjà, le programme plantait parce que je ne déclarais pas int argc dans les arguments de main. Ensuite, voilà le code pour convertir une char* en int :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #include <sstream>
     
    ...
     
    std::istringstream iss(argv[2]);
    int port;
    iss >> port;
    Merci de ton aide.

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

Discussions similaires

  1. [C# 2.0] Problème de conversion de type
    Par freerider1 dans le forum Windows Forms
    Réponses: 18
    Dernier message: 11/08/2017, 13h50
  2. Réponses: 2
    Dernier message: 20/10/2008, 16h40
  3. Problème de conversion de type de données
    Par ruzakruzak dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/06/2007, 10h51
  4. [WD10] Problème de conversion de type
    Par rphenix dans le forum WinDev
    Réponses: 2
    Dernier message: 15/01/2007, 14h22
  5. [Excel] Problème de conversion de type de données
    Par keiserjo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/07/2006, 12h26

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