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 :

Association de variables


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 93
    Par défaut Association de variables
    Bonjour !
    Je cherche un moyen d'associer 2 variables. Je m'explique, j'ai :

    a = 1;
    b = 3;

    et je veux :

    c = ab = 13

    Je veux qu'avec le nombre 1 et le nombre 3, obtenir le chiffre 13.

    Merci de votre aide !

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 93
    Par défaut
    J'ai oublié de préciser que a, b et c sont des char.

    J'ai trouvé un moyen en faisant :

    char c[2];
    c[0] = a;
    c[1] = b;

    du coup j’obtiens :

    c = 13

    Mais ce carré m'embête.

  3. #3
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    char est un type représentant un caractère, c'est à dire à peu près une lettre.
    Attention, toute fois, char est quand même un type entier, la valeur du caractère '1' n'est pas 1. Pour obtenir 1, il faut calculer a-'0';.

    "13" ce sont deux lettres qui se suivent. Il faut utiliser un type de séquence de caractères.
    Il y en a deux principaux: std::string et std::vector<char>.

    On peut imaginer d'autres choses comme std::array<char, 2>, std::list<char>, std::deque<char>.
    Voire les peu recommandables et antiques char[2] et char*. Ces derniers ont l'atroce défaut de convenir à la fois à une séquence de taille précise de chars, et à une chaine de caractère façon C, de taille inconnue, mais terminée par une valeur spécifique de char, '\0'.

    Cela dit, la "bonne" réponse à ta question dépend non pas de ton besoin immédiat, mais de la raison de ton besoin.
    à quoi va te servir la valeur ainsi obtenue?
    • A obtenir la valeur correspondante? autant écrire auto c = 10*(a-'0') + (b-'0');.
    • A compléter un unique texte? utilise directement le flux concu pour (std::ostringstream ou le std::ostream pris en parametre): stream << a << b.
    • A compléter des textes? fais en une string: std::string c({a, b});.

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 93
    Par défaut
    Merci beaucoup pour ta réponse ! Je comprend mieux !

    En faite, j'ai un fichier texte avec plusieurs caractères ( @01$02&12{088,6/ ). J'ai besoin de récupérer certains caractères de cette chaîne comme 01, 02 et 088,6.

    Pour se faire, j'ai lu le fichier caractère par caractère et j'ai enregistré ceux qu'il me fallait dans des variables :
    a = 0
    b = 1
    c = 0
    d = 2
    e = 0
    f = 8 ...

    Le problème est que j'ai besoin d'avoir 01 et pas 0 et 1.

    Je précise que toutes les quelques minutes, les nombres de la chaîne changent.

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Sont-ce explicitement des nombres que tu dois récupérer?

    Si oui, tu peux te servir de la saisie formatée, quelque chose comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void fonction(std::string const& input) {
        int a, b;
        double c;
        sscanf( input.c_str(), "@%d$%d&%*d{%f/", &a, &b, &c);
        //utiliser a, b et c
    }
    .
    Bien sûr, dans ton code, les noms des variables seront significatifs.

    Regarde la documentation précise des fonctions scanf pour le détail.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 93
    Par défaut
    Merci je vais regarder tout ça.

    J'avais aussi pensé à refaire ce morceau programme en lisant la 1er ligne du fichier texte puis utiliser "substr" pour récupérer les chiffres dont j'ai besoin.

    En gros, lire le fichier texte, mettre tout ça dans une chaîne de caractère puis la découper.

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

Discussions similaires

  1. [XL-2007] associer une variable à une autre
    Par Traputaca dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/05/2013, 09h33
  2. [XL-2007] Associer une variable au nom d'un fichier
    Par lbroc84 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 09/01/2012, 11h52
  3. Associé une variable avec Visual Basic
    Par dada49 dans le forum VB.NET
    Réponses: 2
    Dernier message: 08/03/2010, 07h06
  4. associer des variables aux controls du Ribbon bar
    Par subzero01 dans le forum MFC
    Réponses: 3
    Dernier message: 07/02/2010, 18h17
  5. Associer la variable i avec plus chemins
    Par paco69 dans le forum Linux
    Réponses: 37
    Dernier message: 11/07/2006, 11h57

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