Bonjour.
J'ai un type définit comme suit: (c'est un mot de 64 bits, ou 2 mots de 32 bits)
ça je ne peux pas y toucher!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 typedef union { //1 mot de 64 bits unsigned __int64 motEntier; //2 mots de 32 bits struct { unsigned int part1; unsigned int part2; }mot32; } Mot64;
Maintenant, j'essaie de mettre un de ces mots dans un string, mais ça ne marche pas des façons que j'ai essayé:
Si quelqu'un a une idée je suis preneur, parce que la je sèche.
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 //init de mon mot: Mot64 monMot; monMot.motEntier=982280960055126; //un petit oss pour la conversion, et un string: ostringstream oss; string monString; //mes essais: oss << monMot.motEntier; //compilation error: operator '<<' is ambiguous oss << (unsigned __int64) monMot.motEntier; //compilation error: operator '<<' is ambiguous oss << (double) monMot.motEntier; //compilation error: conversion from unsigned __int64 to double not implemented, use signed __int64 oss << (signed __int64) monMot.motEntier; //compilation error: operator '<<' is ambiguous oss << (int) monMot.mot32.part1 << (int) monMot.mot32.part2 //ca compile et execute, mais evidemment ne me donne pas le bon resultat
Je suis bien allé voir la faq, comment convertir n'importe quel type d'objet en string, mais je ne comprend pas bien les classes templates.
Partager