wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 1

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» reinterpret_cast<> et lose precision
Conversation : reinterpret_cast<> et lose precision
09-08-2008 13:51:05  reinterpret_cast<> et lose precision #1
chkone (Membre)
Inscrit le : 18-05-2008
Messages: 25
Snippets: 0
Tutoriels: 0
Hors ligne
Amis du jour bonjour,
amis du soir bonsoir,
Devinez quoi... Et bien je code, je programme en C++ pour être innovant.
Donc je lis un fichier a coup de std::fstream et de read parce que je veux récupérer un 1, 2 ou 8 octets.
Donc je fais

Code Cpp:

    char _1_octet[1];
    char _2_octets[2];
    char _8_octets[8];
    std::ifstream file;
    file.open(filename.c_str(), std::ios::in | std::ios::binary);
    if (file.good())
    {
        file.read(_8_octets, 8);
        width = reinterpret_cast<unsigned long long>(_8_octets);
    }


Ici pas de problème mais lorsque je veux lire 1 ou 2 octets GCC râle.
Lorsque je fais :

Code Cpp:

    file.read(_1_octet, 1);
    channel = reinterpret_cast<unsigned char>(_1_octet);
// OU
    file.read(_2_octets, 2);
    D = reinterpret_cast<unsigned short>(_2_octets);

GCC me dit :

Code:

hd_pic.cpp|44|error: reinterpret_cast from `char*' to `unsigned char' loses precision|
hd_pic.cpp|65|error: reinterpret_cast from `char*' to `short unsigned int' loses precision|

Merci pour vaut aiguillage :)
10-08-2008 12:10:17  Re: reinterpret_cast<> et lose precision #2
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
Sinon tu peux passer par une union

Itérer est humain, récurser est divin
10-08-2008 12:49:38  Re: reinterpret_cast<> et lose precision #3
chkone (Membre)
Inscrit le : 18-05-2008
Messages: 25
Snippets: 0
Tutoriels: 0
Hors ligne
ça m'aidera toujours pas l'union il y aura quand même le problème avec les pointeurs. Et je ne vais pas faire un union si je vais l'utilisé qu'une seul fois.
10-08-2008 13:42:45  Re: reinterpret_cast<> et lose precision #4
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
Comment ca un problème avec les pointeurs?

Itérer est humain, récurser est divin
10-08-2008 15:09:55  Re: reinterpret_cast<> et lose precision #5
chkone (Membre)
Inscrit le : 18-05-2008
Messages: 25
Snippets: 0
Tutoriels: 0
Hors ligne
Le problème c'est de copier les bits contenu dans char[2] dans un unsigned short
10-08-2008 15:30:24  Re: reinterpret_cast<> et lose precision #6
xxltux (Membre)
Lieu: Montpellier
Inscrit le : 07-10-2007
Messages: 544
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
union
{
char tableau[2];
unsigned short short_;
}
----------
En plus tu copies plus XD

Dernière modification par xxltux (10-08-2008 18:23:50)


Itérer est humain, récurser est divin
11-08-2008 01:30:59  Re: reinterpret_cast<> et lose precision #7
chkone (Membre)
Inscrit le : 18-05-2008
Messages: 25
Snippets: 0
Tutoriels: 0
Hors ligne
hmm franchement pas mal ton idée :D je prend
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» reinterpret_cast<> et lose precision