[C++] RESOLU - Imprimer la valeur d'un pointeur sans le prefixe 0x?

RESOLU - Imprimer la valeur d'un pointeur sans le prefixe 0x? [C++] - C++ - Programmation

Marsh Posté le 13-01-2009 à 20:49:46    

salut a tous,  
 
mon probleme est le suivant: j'ai un pointeur void *p et je veux imprimer sa valeur en virant les characteres 0x qui le prefixe. (parce que graphviz aime pas 0x, il pense que c'est deux objets differents)
 
example:
cout << p;                  // mauvais: je recupere 0x9b53c20 et je voulais 9b53c20
 
Oui je sais, c'est vraiment con comme question mais je me casse la tete dessus depuis 30 minutes!
 
Merci d'avance
Fred


Message édité par Cytoplasm le 14-01-2009 à 14:47:40

---------------
Qui pisse contre le vent s'en prend plein la gueule
Reply

Marsh Posté le 13-01-2009 à 20:49:46   

Reply

Marsh Posté le 13-01-2009 à 20:53:21    

Je viens de penser a faire un printf
 
printf("%x",p);  
 
mais ca me fait un peu chier d'avoir un printf au milieu de mes cout. si quelqu'un a mieux je prends

Reply

Marsh Posté le 13-01-2009 à 21:33:57    

std::cout << reinterpret_cast<unsigned long>(p);

Reply

Marsh Posté le 14-01-2009 à 14:36:28    

A ca, ca a l'air malin! je m'en vais essayer ca tout de suite!
Merci bien!

Reply

Marsh Posté le 14-01-2009 à 16:49:08    

Voir unsigned long long si t'es en 64bits sous windows.

Reply

Marsh Posté le 14-01-2009 à 16:54:32    

En même temps s'il est en 64 bits les long feront 64 bits aussi. Donc pas besoin de long long.

Reply

Marsh Posté le 14-01-2009 à 17:00:32    

Tarabiscote a écrit :

En même temps s'il est en 64 bits les long feront 64 bits aussi. Donc pas besoin de long long.


Et bah pas forcément du tout ... genre sous windows quoi. vc++ est en llp64.

Reply

Marsh Posté le 14-01-2009 à 17:40:28    

uintptr_t est fait pour ca (<stdint.h> ) mais je ne sais pas si c'est disponible sous Windows.
Ce sera en C++0X.

Reply

Marsh Posté le 14-01-2009 à 17:48:27    

owi, j'avais oublié ça !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed