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 :

problème d'écriture dans un fichier


Sujet :

C++

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut problème d'écriture dans un fichier
    Bonjour, j'ai le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    std::ostream & RepresentativityMesStatique::print(std::ostream & os) const
    {
    	os << "valeur a viser = " << _vav << endl;
    	os << "valeur mesuree = "<< _val << endl;
    	os << "tolerance inferieure = " << _tolinf << endl;
    	os << "tolerance superieure = " << _tolsup << endl;
    	os << printTypeMesStatique(os);
    	Representativity::print(os);
     
    	return os;
    }
     
    std::ostream & RepresentativityMesStatique::printTypeMesStatique(std::ostream & os) const
    {
    	os << "mesure statique = ";
     
    	switch(_type)
    	{
    		case 1: os << "toto 1" << endl; break;
    		case 2 : os << "toto 2" << endl; break;
    		case 3 : os << "toto 3" << endl; break;
    		case 4 : os << "toto 4" << endl; break;
    		case 5 : os << "toto 5" << endl; break;
    		case 6 : os << "toto 6" << endl; break;
    		case 7 : os << "toto 7" << endl; break;
    	} // switch(_type)
     
    	return os;
    }
    Dans le fichier j'ai ceci

    valeur a viser = 0
    valeur mesuree = 1
    tolerance inferieure = -3
    tolerance superieure = 3
    mesure statique = 3
    00DBFD3Ccouleur representativite = vert
    J'ai de drôle de caractère devant le "couleur representativite". Savez-vous à quoi cela est-il du ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 545
    Par défaut
    Bonjour,

    le code présenté est-il vraiment celui réalisant l'affichage ?

    comme il n'y a pas de "toto" la seule solution est que _type ne soit pas entre 1 et 7 (il serait préférable d'ajouter un cas default )

    de ce que l'on voit le problème est donc dans Representativity::print ... qui n'est pas fournie
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    Citation Envoyé par bruno_pages Voir le message
    Bonjour,

    le code présenté est-il vraiment celui réalisant l'affichage ?

    comme il n'y a pas de "toto" la seule solution est que _type ne soit pas entre 1 et 7 (il serait préférable d'ajouter un cas default )
    effectivement, j'ai un peu modifier la fonction pour ne pas dévoiler tout le code. En fait la vrai sortie serait :

    valeur a viser = 0
    valeur mesuree = 1
    tolerance inferieure = -3
    tolerance superieure = 3
    mesure statique = toto 3
    00DBFD3Ccouleur representativite = vert
    Mais en modifiant la fonction RepresentativityMesStatique::print comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    std::ostream & RepresentativityMesStatique::print(std::ostream & os) const
    {
    	os << "valeur a viser = " << _vav << endl;
    	os << "valeur mesuree = "<< _val << endl;
    	os << "tolerance inferieure = " << _tolinf << endl;
    	os << "tolerance superieure = " << _tolsup << endl;
    	printTypeMesStatique(os);
    	Representativity::print(os);
     
    	return os;
    }
    (je n'ai pas mis de "os << " devant printTypeMesStatique(os) le problème disparait et le fichier devient

    valeur a viser = 0
    valeur mesuree = 1
    tolerance inferieure = -3
    tolerance superieure = 3
    mesure statique = toto 3
    couleur representativite = vert
    (il n'y a plus les caractères affreux devant "couleur representativite"). Mais je n'ai pas compris pourquoi cette modification fait que tout se passe bien...

    Quelqu'un peut-il m'en donner la raison ?

    Merci encore

  4. #4
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 545
    Par défaut
    Citation Envoyé par salseropom Voir le message
    (je n'ai pas mis de "os << " devant printTypeMesStatique(os) le problème disparait et le fichier devient

    (il n'y a plus les caractères affreux devant "couleur representativite"). Mais je n'ai pas compris pourquoi cette modification fait que tout se passe bien...
    mais oui, bien-sûr, j'avais pas vu

    c'est très simple, 00DBFD3C est l'adresse du stream que vous demandiez d'afficher en faisant os << printTypeMesStatique(os); puisque printTypeMesStatique retournait le stream
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    effectivement, je n'avais pas vu le problème sous cet angle. Pour moi, quand je faisais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    os << printTypeMesStatique(os);
    je rajoutais dans mon stream os le contenu de printTypeMesStatique. Je n'avais pas compris que je demandais d'afficher l'adresse du stream.

    Merci bcp !

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

Discussions similaires

  1. problème d'écriture dans un fichier
    Par cartonol dans le forum Oracle
    Réponses: 12
    Dernier message: 17/08/2006, 17h08
  2. [FTP] problème d'écriture dans un fichier
    Par oops! dans le forum Langage
    Réponses: 14
    Dernier message: 08/08/2006, 16h52
  3. problème d'écriture dans un fichier
    Par seurjer dans le forum Langage
    Réponses: 8
    Dernier message: 01/06/2006, 09h15
  4. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  5. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28

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