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 :

Récupération paramètre d'une trame


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Par défaut Récupération paramètre d'une trame
    Bonjour à tous,
    Je programme en C++ et je reçois une trame du type: matiere-1-4-6-23
    Je voudrais récupérer les paramètres pour pouvoir les utiliser independament les uns des autres, j'ai penser à les mettre dans un tableau pour pouvoir les utiliser grâce aux cases du tableau mais je sais pas comment faire.
    HELP ME PLEASE !! ^^

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Salut

    Je n'ai pas très bien compris... tu reçois une chaîne de caractère qui contient "matiere-1-4-6-23" et tu voudrais la parser pour isoler les paramètres ? Est ce bien cela ?

  3. #3
    Membre éprouvé Avatar de Nhaps
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 350
    Par défaut
    si c'est bien cela std::getline fera l'affaire

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Par défaut
    Est ce que je pourrai les utiliser séparément pour faire des calculs ?
    par exemple si en deuxième parametre j'ai le chiffre 4 est ce que je pourrai faire var=tab[1]*2; ??

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Bien sûr ! Voici un exemple :

    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
    #include <iostream>
    #include <sstream>
    #include <vector>
    #include <string>
     
    int main()
    {
    	std::istringstream input("matiere-1-4-6-23");
     
    	// Découpage de la chaîne
    	std::vector< int > parametres;
    	std::string tampon;
    	while(std::getline(input,tampon,'-'))
    	{
    		std::istringstream current(tampon);
    		int valeur;
    		if(current >> valeur)
    			parametres.push_back(valeur);
     
    	}
     
    	// Calcul avec les paramètres
    	std::cout << parametres[0] + parametres[3] << std::endl;
     
        return 0;
    }
    A toi de jouer

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Par défaut
    Oulala ^^ Est ce que tu pourrai m'expliquer ton code en detail car je ne connais pas certaines choses comme par exemple:
    std::vector< int > parametres;
    parametres.push_back(valeur);

    et quelle est la différence entre std::istringstream input et std::istringstream current

    Désolé pour le dérangement ^^

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Hello

    std::vector est un conteneur de la STL qui te permet de faire des tableaux dynamiques. Ce n'est pas le seul, mais c'est le plus courant. Voir l'entrée de la FAQ.

    std::istringstream est un flux d'entrée. Cela permet d'utiliser des chaînes de caractères comme si on lisait le contenu d'un fichier, et d'utiliser les fonctions de la STL idoines.

    Le stream input contient ta donnée d'entrée. Le stream current contient, à chaque exécution de la boucle, la partie de chaîne découpée courante, qui a été stockée dans tampon grâce à getline. En l'occurence, current va contenir, tout à tour, "matiere", "1", "4", "6" et enfin "23".

    current >> valeur sert à convertir le morceau en cours en nombre entier, si cela est possible, d'où le if au cas ou. Par exemple, "matiere" ne peux pas être converti en nombre entier. Voir ici.

  8. #8
    Membre éprouvé Avatar de Nhaps
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 350
    Par défaut
    Les vectors sont des conteneurs de la STL, tu peux trouver de la documentation et ainsi comprendre toutes ses méthodes ici


  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Par défaut
    Merci beaucoup, tu m'as bien aidé !! C'est sympa de trouver des gens comme toi sur un forum

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Pas de quoi, on trouve toujours de l'aide quand c'est demandé poliment

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/03/2015, 18h26
  2. Réponses: 3
    Dernier message: 18/09/2009, 09h20
  3. [XSL] Récupération d'un paramètre dans une URL
    Par mlny84 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 14/11/2007, 13h49
  4. Récupération des paramètres d'une requête
    Par TomPad dans le forum Access
    Réponses: 10
    Dernier message: 16/06/2005, 15h11
  5. Récupération des paramètres avec une procedure stockée
    Par samlerouge dans le forum Bases de données
    Réponses: 2
    Dernier message: 31/03/2004, 22h00

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