OVH Cloud OVH Cloud

1/2 newbie en c++ : formatage des reels

26 réponses
Avatar
Bonjour,

je suis en train d'apprendre la stl, le bouquin de jossutis est presque
parfait mais certains points restent obscurs.

Par exemple :

1)
en pascal write(123.456) renvoie 123.456.
et write(123.456:7:4") renvoie 123.4560

en c++ "cout << 123.456" renvoie 123.456000
cout << setprecision(0) << 123.456 renverra 123
... etc

donc on ne peut pas avoir un nombre de décimales flottant avec ostream
c'est bien ça ?

et il n'y a pas d'équivalent de sprintf en c++ à part ostringstream

j'ai tout compris ou je me plante ?

merci d'avance

Alain

6 réponses

1 2 3
Avatar
kanze
Jean-Marc Bourguet wrote in message
news:...
"Michel Michaud" writes:


[...]
Un petit probleme, ca ne trouve pas les operateurs quand il y a des
conversions sur les deux membres puisqu'ils ne sont trouve que par
ADL.


C'est peut-?tre vrai, mais vu que je n'aime pas les conversions
implicites, je ne les programme pas pour mes propres types. Du coup, ça
marche.

(Je vais expérimenter un peu avec de différents compilateurs avant que
je m'y lance complétement. J'ai déj? rencontré plus d'une bonne idée qui
ne plaisait pas aux vieux compilateurs avec lesquels je dois
travailler.)

--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

Avatar
Jean-Marc Bourguet
writes:

(Je vais experimenter un peu avec de differents
compilateurs avant que je m'y lance completement. J'ai
deja rencontre plus d'une bonne idee qui ne plaisait pas
aux vieux compilateurs avec lesquels je dois travailler.)


Si j'ai bonne mémoire, j'ai déjà trouvé des problèmes avec
les friend inline.

A+

PS: pourquoi utilises-tu charset=ISO-8859-2?

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Avatar
Gabriel Dos Reis
Jean-Marc Bourguet writes:

| PS: pourquoi utilises-tu charset=ISO-8859-2?

Parce qu'il peut. ;-)

-- Gaby
Avatar
kanze
Jean-Marc Bourguet wrote in message
news:...

PS: pourquoi utilises-tu charset=ISO-8859-2?


Parce que mon système (ou emacs ou Mozilla) déconne ?

Sérieusement, si je fais « echo $LC_CTYPE », il me dit iso_8859_1. C'est
aussi ce que j'ai mis comme encodage par défaut dans la configuration de
Mozilla. Alors, si mes messages sont réelement en 8859-2, je ne sais pas
pourquoi. (Mais Mozilla a bien l'air de jouer un peu avec les encodages.
J'ai souvent besoin de spécifier l'encodage à la main quand je visite
des pages aussi.)

--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

Avatar
Michel Michaud
Dans news:, Jean-Marc
"Michel Michaud" writes:

class A : public Comparaisons<A> // CRTP ou B&N trick
[...]


template <typename T>
class Comparaisons
{
public :
friend bool operator==(const T& p_gauche, const T&
p_droit) { return p_gauche.Compare(p_droit) == 0; }
[...]



Un petit probleme, ca ne trouve pas les operateurs quand il y a
des conversions sur les deux membres puisqu'ils ne sont trouve
que par ADL.


Je dirais que c'est une caractéristique plus qu'un problème. Si
ce n'est pas ce qu'on veut, on fait comme d'habitude au lieu de
prendre cette technique.

Mais tu as un exemple réaliste où c'est vraiment un problème ?

--
Michel Michaud
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/


Avatar
Jean-Marc Bourguet
"Michel Michaud" writes:

Un petit probleme, ca ne trouve pas les operateurs quand il y a
des conversions sur les deux membres puisqu'ils ne sont trouve
que par ADL.


Je dirais que c'est une caractéristique plus qu'un problème. Si ce
n'est pas ce qu'on veut, on fait comme d'habitude au lieu de prendre
cette technique.


Probleme etait un mot trop fort. Disons que si le cas se presente, il
risque de surprendre, en bien autant qu'en mal.

Mais tu as un exemple réaliste où c'est vraiment un problème ?


Une classe (templatee sur le nombre de chiffres apres la virgule) de
nombres en virgule fixe ayant une conversion implicite vers une classe
(non template) de nombre decimaux et utilisant la conversion implicite
et la comparaison des nombres decimaux pour comparer des
specialisations differentes.

En pratique, j'ai fort peu de classes a semantique de valeur et pour
celles-la j'evite les conversions implicites.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org


1 2 3