long monLong = 95527001;
RWCString maChaine;
RWLocaleSnapshot * local = new RWLocaleSnapshot("");
maChaine = local->asString(monLong);
mais lorsque j'essaye de lire maChaine.data() (en sortie formatée par
exemple), j'ai des caracteres bizarres supplementaires qui s'affichent
du style "95à527à001" ...
Je dois louper un truc.
--
Il y a 10 sortes de gens, ceux qui savent compter en binaire et les
autres...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Serge Paccalin
Le mercredi 7 décembre 2005 à 17:39:46, Simon Legris a écrit dans fr.comp.lang.c++ :
Comment fait'on, SVP ?
(Psst : « fait-on »).
J'ai essayé ca, trouvé sur le ouebe:
long monLong = 95527001; RWCString maChaine; RWLocaleSnapshot * local = new RWLocaleSnapshot(""); maChaine = local->asString(monLong);
mais lorsque j'essaye de lire maChaine.data() (en sortie formatée par exemple), j'ai des caracteres bizarres supplementaires qui s'affichent du style "95à527à001" ...
Je dois louper un truc.
Je ne connais pas RWCString, ça doit être spécifique à une bibliothèque. Mais tes « 95à527à001 » m'interpellent. Sous Windows, l'espace insécable apparaît sous la forme d'un « á » quand on l'affiche dans une console sans prendre la précaution de convertir vers la bonne page de code.
-- ___________ 07/12/2005 18:12:54 _/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net _L_) Il faut donc que les hommes commencent -'(__) par n'être pas fanatiques pour mériter _/___(_) la tolérance. -- Voltaire, 1763
Le mercredi 7 décembre 2005 à 17:39:46, Simon Legris a écrit dans
fr.comp.lang.c++ :
Comment fait'on, SVP ?
(Psst : « fait-on »).
J'ai essayé ca, trouvé sur le ouebe:
long monLong = 95527001;
RWCString maChaine;
RWLocaleSnapshot * local = new RWLocaleSnapshot("");
maChaine = local->asString(monLong);
mais lorsque j'essaye de lire maChaine.data() (en sortie formatée par
exemple), j'ai des caracteres bizarres supplementaires qui s'affichent
du style "95à527à001" ...
Je dois louper un truc.
Je ne connais pas RWCString, ça doit être spécifique à une bibliothèque.
Mais tes « 95à527à001 » m'interpellent. Sous Windows, l'espace insécable
apparaît sous la forme d'un « á » quand on l'affiche dans une console
sans prendre la précaution de convertir vers la bonne page de code.
--
___________ 07/12/2005 18:12:54
_/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net
_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763
Le mercredi 7 décembre 2005 à 17:39:46, Simon Legris a écrit dans fr.comp.lang.c++ :
Comment fait'on, SVP ?
(Psst : « fait-on »).
J'ai essayé ca, trouvé sur le ouebe:
long monLong = 95527001; RWCString maChaine; RWLocaleSnapshot * local = new RWLocaleSnapshot(""); maChaine = local->asString(monLong);
mais lorsque j'essaye de lire maChaine.data() (en sortie formatée par exemple), j'ai des caracteres bizarres supplementaires qui s'affichent du style "95à527à001" ...
Je dois louper un truc.
Je ne connais pas RWCString, ça doit être spécifique à une bibliothèque. Mais tes « 95à527à001 » m'interpellent. Sous Windows, l'espace insécable apparaît sous la forme d'un « á » quand on l'affiche dans une console sans prendre la précaution de convertir vers la bonne page de code.
-- ___________ 07/12/2005 18:12:54 _/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net _L_) Il faut donc que les hommes commencent -'(__) par n'être pas fanatiques pour mériter _/___(_) la tolérance. -- Voltaire, 1763
kanze
Serge Paccalin wrote:
Le mercredi 7 décembre 2005 à 17:39:46, Simon Legris a écrit dans fr.comp.lang.c++ :
Comment fait'on, SVP ?
(Psst : « fait-on »).
J'ai essayé ca, trouvé sur le ouebe:
long monLong = 95527001; RWCString maChaine; RWLocaleSnapshot * local = new RWLocaleSnapshot(""); maChaine = local->asString(monLong);
mais lorsque j'essaye de lire maChaine.data() (en sortie formatée par exemple), j'ai des caracteres bizarres supplementaires qui s'affichent du style "95à527à001" ...
Je dois louper un truc.
Je ne connais pas RWCString, ça doit être spécifique à une bibliothèque.
RW est le préfixe qu'utilise Rogue Wave. J'imagine donc qu'il s'agit de la bibliothèque Rogue Wave.
Mais tes « 95à527à001 » m'interpellent. Sous Windows, l'espace insécable apparaît sous la forme d'un « á » quand on l'affiche dans une console sans prendre la précaution de convertir vers la bonne page de code.
La valeur hex de son constante contient bien un A0 (qui est le code pour un espace inseccable). Mais je ne retrouve rien d'autre là dedans.
S'il a le choix, la solution évident ici serait de laisser tomber la bibliothèque non standard, et d'utiliser celle standard :
std::ostringstream s ; s << monLong maChain = s.str() ;
Ça me semble aussi simple, et a les avantages qu'il fonctionne partout et qu'on saurait l'aider s'il a des problèmes.
-- James Kanze GABI Software 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
Serge Paccalin wrote:
Le mercredi 7 décembre 2005 à 17:39:46, Simon Legris a écrit
dans fr.comp.lang.c++ :
Comment fait'on, SVP ?
(Psst : « fait-on »).
J'ai essayé ca, trouvé sur le ouebe:
long monLong = 95527001;
RWCString maChaine;
RWLocaleSnapshot * local = new RWLocaleSnapshot("");
maChaine = local->asString(monLong);
mais lorsque j'essaye de lire maChaine.data() (en sortie
formatée par exemple), j'ai des caracteres bizarres
supplementaires qui s'affichent du style "95à527à001" ...
Je dois louper un truc.
Je ne connais pas RWCString, ça doit être spécifique à une
bibliothèque.
RW est le préfixe qu'utilise Rogue Wave. J'imagine donc qu'il
s'agit de la bibliothèque Rogue Wave.
Mais tes « 95à527à001 » m'interpellent. Sous Windows, l'espace
insécable apparaît sous la forme d'un « á » quand on l'affiche
dans une console sans prendre la précaution de convertir vers
la bonne page de code.
La valeur hex de son constante contient bien un A0 (qui est le
code pour un espace inseccable). Mais je ne retrouve rien
d'autre là dedans.
S'il a le choix, la solution évident ici serait de laisser
tomber la bibliothèque non standard, et d'utiliser celle
standard :
std::ostringstream s ;
s << monLong
maChain = s.str() ;
Ça me semble aussi simple, et a les avantages qu'il fonctionne
partout et qu'on saurait l'aider s'il a des problèmes.
--
James Kanze GABI Software
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
Le mercredi 7 décembre 2005 à 17:39:46, Simon Legris a écrit dans fr.comp.lang.c++ :
Comment fait'on, SVP ?
(Psst : « fait-on »).
J'ai essayé ca, trouvé sur le ouebe:
long monLong = 95527001; RWCString maChaine; RWLocaleSnapshot * local = new RWLocaleSnapshot(""); maChaine = local->asString(monLong);
mais lorsque j'essaye de lire maChaine.data() (en sortie formatée par exemple), j'ai des caracteres bizarres supplementaires qui s'affichent du style "95à527à001" ...
Je dois louper un truc.
Je ne connais pas RWCString, ça doit être spécifique à une bibliothèque.
RW est le préfixe qu'utilise Rogue Wave. J'imagine donc qu'il s'agit de la bibliothèque Rogue Wave.
Mais tes « 95à527à001 » m'interpellent. Sous Windows, l'espace insécable apparaît sous la forme d'un « á » quand on l'affiche dans une console sans prendre la précaution de convertir vers la bonne page de code.
La valeur hex de son constante contient bien un A0 (qui est le code pour un espace inseccable). Mais je ne retrouve rien d'autre là dedans.
S'il a le choix, la solution évident ici serait de laisser tomber la bibliothèque non standard, et d'utiliser celle standard :
std::ostringstream s ; s << monLong maChain = s.str() ;
Ça me semble aussi simple, et a les avantages qu'il fonctionne partout et qu'on saurait l'aider s'il a des problèmes.
-- James Kanze GABI Software 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
Simon Legris
Re-bienlebonjour.
J'ai reglé mon probleme en construisant differemment ma RWCString via la fonction de la stdlib *ltoa*:
le printf(%s) de maChaine.data() est OK maintenant...
Serge Paccalin
Le jeudi 8 décembre 2005 à 09:06:07, kanze a écrit dans fr.comp.lang.c++ :
Mais tes « 95à527à001 » m'interpellent. Sous Windows, l'espace insécable apparaît sous la forme d'un « á » quand on l'affiche dans une console sans prendre la précaution de convertir vers la bonne page de code.
La valeur hex de son constante contient bien un A0 (qui est le code pour un espace inseccable). Mais je ne retrouve rien d'autre là dedans.
Dans la page de codes 850, héritée de MS-DOS, la valeur A0 code le « á ». Un appel à CharToOem() permettrait d'obtenir et afficher la bonne chaîne.
S'il a le choix, la solution évident ici serait de laisser tomber la bibliothèque non standard, et d'utiliser celle standard :
std::ostringstream s ; s << monLong maChain = s.str() ;
Ça me semble aussi simple, et a les avantages qu'il fonctionne partout et qu'on saurait l'aider s'il a des problèmes.
Sans doute, mais il n'a plus de séparateur des milliers (c'est le rôle des espaces insécables dans les nombres, en français), ce qui est franchement dommage pour la lisibilité.
-- ___________ 08/12/2005 19:02:34 _/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net _L_) Il faut donc que les hommes commencent -'(__) par n'être pas fanatiques pour mériter _/___(_) la tolérance. -- Voltaire, 1763
Le jeudi 8 décembre 2005 à 09:06:07, kanze a écrit dans
fr.comp.lang.c++ :
Mais tes « 95à527à001 » m'interpellent. Sous Windows, l'espace
insécable apparaît sous la forme d'un « á » quand on l'affiche
dans une console sans prendre la précaution de convertir vers
la bonne page de code.
La valeur hex de son constante contient bien un A0 (qui est le
code pour un espace inseccable). Mais je ne retrouve rien
d'autre là dedans.
Dans la page de codes 850, héritée de MS-DOS, la valeur A0 code le
« á ». Un appel à CharToOem() permettrait d'obtenir et afficher la bonne
chaîne.
S'il a le choix, la solution évident ici serait de laisser
tomber la bibliothèque non standard, et d'utiliser celle
standard :
std::ostringstream s ;
s << monLong
maChain = s.str() ;
Ça me semble aussi simple, et a les avantages qu'il fonctionne
partout et qu'on saurait l'aider s'il a des problèmes.
Sans doute, mais il n'a plus de séparateur des milliers (c'est le rôle
des espaces insécables dans les nombres, en français), ce qui est
franchement dommage pour la lisibilité.
--
___________ 08/12/2005 19:02:34
_/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net
_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763
Le jeudi 8 décembre 2005 à 09:06:07, kanze a écrit dans fr.comp.lang.c++ :
Mais tes « 95à527à001 » m'interpellent. Sous Windows, l'espace insécable apparaît sous la forme d'un « á » quand on l'affiche dans une console sans prendre la précaution de convertir vers la bonne page de code.
La valeur hex de son constante contient bien un A0 (qui est le code pour un espace inseccable). Mais je ne retrouve rien d'autre là dedans.
Dans la page de codes 850, héritée de MS-DOS, la valeur A0 code le « á ». Un appel à CharToOem() permettrait d'obtenir et afficher la bonne chaîne.
S'il a le choix, la solution évident ici serait de laisser tomber la bibliothèque non standard, et d'utiliser celle standard :
std::ostringstream s ; s << monLong maChain = s.str() ;
Ça me semble aussi simple, et a les avantages qu'il fonctionne partout et qu'on saurait l'aider s'il a des problèmes.
Sans doute, mais il n'a plus de séparateur des milliers (c'est le rôle des espaces insécables dans les nombres, en français), ce qui est franchement dommage pour la lisibilité.
-- ___________ 08/12/2005 19:02:34 _/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net _L_) Il faut donc que les hommes commencent -'(__) par n'être pas fanatiques pour mériter _/___(_) la tolérance. -- Voltaire, 1763
kanze
Serge Paccalin wrote:
Le jeudi 8 décembre 2005 à 09:06:07, kanze a écrit dans fr.comp.lang.c++ :
Mais tes « 95à527à001 » m'interpellent. Sous Windows, l'espace insécable apparaît sous la forme d'un « á » quand on l'affiche dans une console sans prendre la précaution de convertir vers la bonne page de code.
La valeur hex de son constante contient bien un A0 (qui est le code pour un espace inseccable). Mais je ne retrouve rien d'autre là dedans.
Dans la page de codes 850, héritée de MS-DOS, la valeur A0 code le « á ». Un appel à CharToOem() permettrait d'obtenir et afficher la bonne chaîne.
D'accord. J'ai compris. (C'est bizarre, mais je n'avais pas rémarqué que les autres caractères étaient bien la représentation ASCII du nombre.)
S'il a le choix, la solution évident ici serait de laisser tomber la bibliothèque non standard, et d'utiliser celle standard :
std::ostringstream s ; s << monLong maChain = s.str() ;
Ça me semble aussi simple, et a les avantages qu'il fonctionne partout et qu'on saurait l'aider s'il a des problèmes.
Sans doute, mais il n'a plus de séparateur des milliers (c'est le rôle des espaces insécables dans les nombres, en français), ce qui est franchement dommage pour la lisibilité.
Il suffit d'imbuer s avec le bon locale.
De même, si on l'imbue d'un locale pour la page de code voulue, il doit générer correctement pour cette page de code.
-- James Kanze GABI Software 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
Serge Paccalin wrote:
Le jeudi 8 décembre 2005 à 09:06:07, kanze a écrit dans
fr.comp.lang.c++ :
Mais tes « 95à527à001 » m'interpellent. Sous Windows,
l'espace insécable apparaît sous la forme d'un « á » quand
on l'affiche dans une console sans prendre la précaution de
convertir vers la bonne page de code.
La valeur hex de son constante contient bien un A0 (qui est
le code pour un espace inseccable). Mais je ne retrouve rien
d'autre là dedans.
Dans la page de codes 850, héritée de MS-DOS, la valeur A0
code le « á ». Un appel à CharToOem() permettrait d'obtenir et
afficher la bonne chaîne.
D'accord. J'ai compris. (C'est bizarre, mais je n'avais pas
rémarqué que les autres caractères étaient bien la
représentation ASCII du nombre.)
S'il a le choix, la solution évident ici serait de laisser
tomber la bibliothèque non standard, et d'utiliser celle
standard :
std::ostringstream s ;
s << monLong
maChain = s.str() ;
Ça me semble aussi simple, et a les avantages qu'il
fonctionne partout et qu'on saurait l'aider s'il a des
problèmes.
Sans doute, mais il n'a plus de séparateur des milliers (c'est
le rôle des espaces insécables dans les nombres, en français),
ce qui est franchement dommage pour la lisibilité.
Il suffit d'imbuer s avec le bon locale.
De même, si on l'imbue d'un locale pour la page de code voulue,
il doit générer correctement pour cette page de code.
--
James Kanze GABI Software
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
Le jeudi 8 décembre 2005 à 09:06:07, kanze a écrit dans fr.comp.lang.c++ :
Mais tes « 95à527à001 » m'interpellent. Sous Windows, l'espace insécable apparaît sous la forme d'un « á » quand on l'affiche dans une console sans prendre la précaution de convertir vers la bonne page de code.
La valeur hex de son constante contient bien un A0 (qui est le code pour un espace inseccable). Mais je ne retrouve rien d'autre là dedans.
Dans la page de codes 850, héritée de MS-DOS, la valeur A0 code le « á ». Un appel à CharToOem() permettrait d'obtenir et afficher la bonne chaîne.
D'accord. J'ai compris. (C'est bizarre, mais je n'avais pas rémarqué que les autres caractères étaient bien la représentation ASCII du nombre.)
S'il a le choix, la solution évident ici serait de laisser tomber la bibliothèque non standard, et d'utiliser celle standard :
std::ostringstream s ; s << monLong maChain = s.str() ;
Ça me semble aussi simple, et a les avantages qu'il fonctionne partout et qu'on saurait l'aider s'il a des problèmes.
Sans doute, mais il n'a plus de séparateur des milliers (c'est le rôle des espaces insécables dans les nombres, en français), ce qui est franchement dommage pour la lisibilité.
Il suffit d'imbuer s avec le bon locale.
De même, si on l'imbue d'un locale pour la page de code voulue, il doit générer correctement pour cette page de code.
-- James Kanze GABI Software 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