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 :

Quelle est cette écriture ?


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Points : 0
    Points
    0
    Par défaut Quelle est cette écriture ?
    Bonjour,
    J'ai retrouvé dans un programme cette écriture:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string nocl =ossnocl.str();
    Je suppose qu'elle transforme une variable numérique nocl
    en une variable chaîne de même nom.
    Si vous avez une réponse simple je prends.
    Je rappelle que c'est un forum débuter.
    Avec mes remerciements.
    Cordialement.
    Sen.

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Sans connaitre spécifiquement le C++, je dirais que ça déclare une variable nocl de type string, puis que ça y met dedans la conversion en string du contenu de la variable ossnocl (dont nous n'avons pas le type d'indiqué, ici)
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Points : 0
    Points
    0
    Par défaut
    Je complète:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ostringstream ossnocl  ;ossnocl   << nocl    ;string nocl =ossnocl.str();
    nocl est numérique.
    Merci pour cette réponse que je subodorais.
    C'est pratique mais la relecture du code devient ardue si on loupe une ligne.
    Je préfère noclNum puis noclStr avec entre les deux une fonction qui passe de Num à Str.
    Plus lourd mais sûr.
    Avec mes remerciements renouvelés.
    Cordialement.
    Sen.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    http://www.cplusplus.com/reference/s...ostringstream/

    http://cpp.developpez.com/faq/cpp/?p...-en-une-string

    pour la relecture... s'agirait de commencer par écrire une seule instruction par ligne

    et ce code ne devrait pas compiler, il est interdit de redéclarer une variable du même nom d'un autre type http://msdn.microsoft.com/fr-fr/libr...(v=vs.90).aspx
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    je dirais que ça déclare une variable nocl de type string, [b]puis que[b] ça y met dedans la conversion en string du contenu de la variable ossnocl
    Petite remarque : ça déclare une variable en l'initialisant avec ossnocl.str(). Ici c'est le constructeur par copie qui est appelé et non l'opérateur d'affectation (comme on pourrait naïvement le penser).

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Points : 0
    Points
    0
    Par défaut
    Oui je sais:une instruction une ligne.
    Mais quand çà marche je concentre
    et çà compile quand même.
    De toutes façons j'abandonne ce style d'écriture et préfère nommer mes variables
    string variStr=... et int variNum=... pour lever toutes ambiguïtés.
    J'ai une fonction qui passe de l'une à l'autre et vice-versa.
    Merci à tous.
    Cordialement.
    Sen.

  7. #7
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,
    Citation Envoyé par senvedgi Voir le message
    Oui je sais:une instruction une ligne.
    Mais quand çà marche je concentre
    et çà compile quand même.
    Oui, ca compile et cela continue même à fonctionner, en effet, mais...

    Mais tu dois te dire qu'il n'y a strictement aucune différence entre le binaire compilé sur base d'un code qui ne contient qu'une instruction par ligne et le même code dans lequel on retrouve plusieurs instructions sur la même ligne.

    Par contre, cela rend la relecture beaucoup plus compliquée en obligeant le lecteur du code à être beaucoup plus attentif, au risque de "louper" une des instructions.

    Or, un code sera beaucoup plus souvent lu que modifié ou compilé. La première qualité que tu dois donc absolument préserver pour ton code est de faire en sorte qu'il soit facilement lisible.

    Dés lors, je te conseille ardemment d'abandonner l'habitude qui consiste à "concentrer" ton code, tu ne t'en sentira que mieux
    De toutes façons j'abandonne ce style d'écriture et préfère nommer mes variables
    string variStr=... et int variNum=... pour lever toutes ambiguïtés.
    J'ai une fonction qui passe de l'une à l'autre et vice-versa.
    Merci à tous.
    Humm... la notation dite hongroise n'est pas vraiment intéressante non plus...

    Ce qu'il faut absolument, c'est t'assurer que chaque variable, chaque fonction et chaque type soit identifiable par un nom qui évite toute ambiguité quant à son utilisation, nous sommes ben d'accord. Mais le fait de rajouter une information qui indique qu'il s'agit d'un entier ou d'une chaine de caractères n'a finalement que peu d'intérêt si tu n'arrive pas à déterminer à la lecture à quoi l'entier ou la chaine de caractères va servir.

    tu as nommé ta variable nocl, mais le fait de savoir que c'est une chaine en la nommant par exemple noclStr ne nous avance pas d'avantage sur son utilité, sur l'information qu'elle est sensée représenter.

    Je ne doute pas une seule seconde que cette abréviation ait une signification particulière pour toi aujourd'hui et que, si je te la demandais, tu me répondrais sans doute "mais voyons, tu es idiot ou quoi tu aurais du te douter que ca signifie [ au fait, ca signifie quoi au juste??? ]". Mais tu dois te dire que tu devra sans doute relire ton code dans trois ou dans six mois (ou même peut etre encore plus), et que tu auras eu largement le temps d'oublier la signification de ce terme.

    Sans oublier que tu viens sur le forum avec un code dont on ignore absolument tout, et qu'il nous est particulièrement difficile de nous faire une idée de la signification d'un terme "jeter" hors contexte, surtout depuis que toutes les boules de crystal on fini par tomber en panne .

    Encore une fois, je te conjure de penser à tous ceux qui devront lire ton code à un moment ou à un autre et à choisir des termes qui indiquent sans ambiguité l'utilité des différents éléments de ton code ;-)
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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

Discussions similaires

  1. Mais quelle est cette balise ? '<#'
    Par Ska_Dg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 10/04/2012, 10h24
  2. Quelle est cette typo ?
    Par Invité dans le forum Imagerie
    Réponses: 3
    Dernier message: 21/02/2012, 20h12
  3. Quelle est cette police de caractère?
    Par vovor dans le forum Webdesign & Ergonomie
    Réponses: 2
    Dernier message: 09/11/2007, 07h51
  4. quelle est cette valeur
    Par b4mail dans le forum C
    Réponses: 13
    Dernier message: 14/05/2006, 23h39
  5. Quelle est cette commande qui plante linux?
    Par 123quatre dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 18/02/2006, 13h48

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