Convertion short* to char* et inversement

popinou77 Messages postés 1 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 6 janvier 2005 - 6 janv. 2005 à 18:00
cs_Nashua Messages postés 48 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 16 mars 2005 - 7 janv. 2005 à 06:47
au secours help me

je cherche a convertir un short* en char * en C++ pour le transmetre sur un reseau UDP
bien entendu j ai essaye de faire un transtipage et la conversion terme a terme.

merci d avance
A voir également:

5 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
6 janv. 2005 à 18:16
Il s'agit de passer de caractères UNICODE à des caractères ANSI ?
si oui voir du coté de MultiByteToWideChar et WideCharToMultiByte sous Windows.
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
6 janv. 2005 à 18:24
Salut,

Ce qui suit n'est pas du C++ mais de l'ANSI C, mais si ça peut dépanner...

#include <stdlib.h>


int main(int argc, char** argv)
{
short* number;
char* str = (char*)malloc(16);
number = 89;
itoa(number, str, 10);
printf("%d %s\n", number, str);
return(0);
}

Ciao.
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
6 janv. 2005 à 18:27
short* number;
...number 89> erreur, number est déclarer en tant que pointeur sur short, il faudrait alors initilisation le pointeur et lui attribuer la valeur coomme suit *number=89

par contre pour transformer un short en char* c'est bien itoa.
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
6 janv. 2005 à 21:56
Erreur, en effet... d'solé !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Nashua Messages postés 48 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 16 mars 2005
7 janv. 2005 à 06:47
En C tu peux utiliser les unions

main(){

union {

unsigned short number;

unsigned char car [sizeof(short)];

} n;

// declarer en non signe au moins le tableau de char.



// exemple d'utilisation
n.number = 0x123456;

fprintf ( stdout,"%d %d\n",n.car[0], n.car[1]);



}



Attention aux surprises, si tu utilise comme je le pense un Intel ou equivalent tes bytes seront inverses, a toi de swapper.


Yves
0
Rejoignez-nous