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 :

ostream et affichage de texte


Sujet :

C++

  1. #1
    Membre éclairé
    Avatar de Aooka
    Homme Profil pro
    Scripting Powershell & Wlangage
    Inscrit en
    Juillet 2015
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Scripting Powershell & Wlangage

    Informations forums :
    Inscription : Juillet 2015
    Messages : 231
    Par défaut ostream et affichage de texte
    Bonjour,


    Je n'arrive pas à comprendre l'utilité d'une telle focntion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    std::ostream                            &operator<<(std::ostream &os)
    {
      os << "hello";
      return (os);
    }
    et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void                                    affichage()
    {
      std::cout << "hello";
    }
    Pourquoi retourner os ? Quelle est le plus à utiliser la méthode du haut ?


    Merci d'avance,
    bonne journée,

  2. #2
    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
    c'est une question de chainage des opérations.

    std::cout << "hello" << "world" << std::endl; est une expression qui s'évalue ainsi (pour cause de priorité des opérateurs):

    ((std::cout << "hello") << "world") << std::endl;.

    c'est à dire (entre autre) << "world" appliquée à la valeur de retour de (std::cout << "hello").
    Pour que cela fonctionne comme attendus, il faut bien que cette dernière expression retourne quelque chose qui accepte << "world", c'est à dire le stream lui-même.

    le stream, c'est std::ostream et lui-même, c'est la référence.

    La seconde méthode est quasiment toujours une erreur.
    Par contre, souvent, on utilisera une fonction afficher_dans (ou print, print_into, into, ou n'importe quel nom qui te plait), écrite ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct Bidule{
    void afficher_dans(std::ostream& stream) {
        stream << "Bidule;
    }
    };
     
    std::ostream& operator<<( std::ostream& stream, Bidule const& b) {
        b.afficher_dans(stream);
        return stream;
    }
    Note que dans ton fragment de code, il manque le second argument de l'opérateur << (à moins que ce soit une fonction membre, mais ca serait étonnant)

  3. #3
    Membre éclairé
    Avatar de Aooka
    Homme Profil pro
    Scripting Powershell & Wlangage
    Inscrit en
    Juillet 2015
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Scripting Powershell & Wlangage

    Informations forums :
    Inscription : Juillet 2015
    Messages : 231
    Par défaut
    Super merci pour la réponse.

    Pour ce qui concerne les chevrons ("<<") et bien je ne les ais pas mis à la fin de mon car je ne souhaitais pas mettre en . Pour l'exemple avec ostream je n'en ai pas mis pour la meme raison.

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/06/2009, 11h30
  2. Affichage de texte
    Par Yellowmat dans le forum OpenGL
    Réponses: 2
    Dernier message: 15/12/2004, 12h25
  3. [C#] Affichage de texte vertical...
    Par AntiSAL dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/06/2004, 14h46
  4. Affichage de texte est mise à jour de l'écran
    Par Galdor_sp dans le forum OpenGL
    Réponses: 3
    Dernier message: 14/03/2004, 22h31
  5. [MX 2004] Affichage du texte dynamique
    Par caramel dans le forum Flash
    Réponses: 8
    Dernier message: 29/01/2004, 16h07

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