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++

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 93
    Points : 53
    Points
    53
    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 du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 93
    Points : 53
    Points
    53
    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 sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    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 195
    Points : 17 163
    Points
    17 163
    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 du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 93
    Points : 53
    Points
    53
    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 sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    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 195
    Points : 17 163
    Points
    17 163
    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 du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 93
    Points : 53
    Points
    53
    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.

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 93
    Points : 53
    Points
    53
    Par défaut
    J'ai fini par utiliser "substr" et tout fonctionne très bien ! Merci pour votre aide qui m'a beaucoup éclairé !

+ 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