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 :

Surcharge de l'opérateur + pour écrire dans un fichier


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut Surcharge de l'opérateur + pour écrire dans un fichier
    Bonsoir tout le monde,

    Alors voila j'explique la situation, pour un laboratoire de programmation, nous avons une classe qui nous permet de manipuler des fichiers, avec une méthode pour avoir des statistiques (nombre de lignes et de mots, etc).

    Je dois réaliser une surcharge de l'opérateur + qui me permet d’ajouter une ligne au fichier. Les opérandes de l’opérateur sont un objet fichier et une chaîne de caractères (la ligne que l’on ajoute) c’est-à-dire f+l ajoute la ligne l à l’objet fichier f.

    J'avoue que je suis assez coincé sur cette parti là ... Si quelqu'un pourrait me donner quelques pistes pour la résolution, ca serait vraiment sympa

    Merci, bonne soirée, Florent - alis tonton flubb

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    La surcharge des opérateurs est traitée dans la FAQ, ainsi que dans tout bon cours de C++. Qu'est-ce qui te bloque exactement ?

    A part ça, sémantiquement tu aurais plus besoin d'un += que d'un +. Voire même d'un <<, pour faire chic.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Par défaut
    ce qui semble genant dans la surcharge de l'operateur + c'est que
    tu vas perdre le sens de permutabilité la tu vas perdre la logique du +

  4. #4
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    Oui j'avais aussi pensé à un << mais la consigne est claire, il faut un +.

    K'ai déjà travaillé avec des surcharges. Ce qui me bloque ici, c'est que je ne vois pas trop quel type utiliser (ofstream, ifstream, ...) et si je dois faire du passage par référence et tout ca...

    Merci de vos réponses en tout cas

    Florent

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Oui j'avais aussi pensé à un << mais la consigne est claire, il faut un +.
    La sémantique de l'opérateur + est d'additionner ses deux opérandes et de renvoyer un nouveau résultat ; en aucun cas il va affecter le résultat à l'une d'entre elles. Or je vois mal ton opérateur + renvoyer un nouveau fichier à chaque opération, il va bien modifier celui passé en paramètre. Il te faut donc un +=, au moins.
    Enfin bon, si ce sont les instructions...

    K'ai déjà travaillé avec des surcharges. Ce qui me bloque ici, c'est que je ne vois pas trop quel type utiliser (ofstream, ifstream, ...) et si je dois faire du passage par référence et tout ca...
    C'est pas très clair tout ça
    C'est l'écriture de l'opérateur qui te pose problème ? L'écriture dans le fichier ? Ou bien ta classe possède déjà les fonctions adéquates pour ça ?

  6. #6
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    Le problème c'est l'écriture de la surcharge oui. J'avais commencer avec un truc du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    friend ostream& operator + (ifstream fichier,char tmp[200]);
     
    ostream& operator + (ifstream fichier,char tmp[200]) {
    }
    Mais je m'embrouille un peu ...

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Par défaut
    Voila un lien sur la faq :
    http://c.developpez.com/faq/cpp/?pag...RGE_definition


    Tu dois écrire un bout de code comme ça mais comme dit avant tu vas tenter d additionner un fichier a une ligne ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    friend  type_de_retour operator+ (type1 operande1, type2 operande2)
    sur ce type d'operateur tu gardes la logique
    Le concept d addition reste logique et tout le monde le comprendra
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    friend  int operator+ (int op1,int op2);
    friend complex operator+ (complex op1,complex op2);
    Faire l'addition d'une ligne et un fichier me semble hasardeuse

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Par défaut
    la logique de ton operateur est elle de concatener
    le fichier ifstream + la ligne pour faire un second fichier ?
    et peux tu ecrire la maniere dont tu vas ecrire la ligne de test ?

  9. #9
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    En fait j'ai un fichier avec un texte déjà présent, et lorsqu je fais fichier+texte a ajouter, cela doit ajouter 'texte à ajouter' dans le fichier 'fichier', à la suite du texte déjà présent.

Discussions similaires

  1. erreur asp pour écrire dans un fichier
    Par Metal dans le forum ASP
    Réponses: 6
    Dernier message: 16/08/2006, 11h18
  2. Réponses: 12
    Dernier message: 26/07/2006, 12h08
  3. Réponses: 20
    Dernier message: 27/06/2006, 17h42
  4. [DOS] Commande pour écrire dans un fichier texte
    Par Jeff87-01 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 28/03/2006, 01h04
  5. Réponses: 3
    Dernier message: 21/03/2006, 13h12

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