Boost logo

Boost Users :

Subject: Re: [Boost-users] reinterpret_cast boost integer
From: Brad Tilley (kj4eit_at_[hidden])
Date: 2012-02-05 11:17:19


> What doesn't work about it?  The std iostreams print char types as
> (extended) ascii characters.  What if you cast the type to a wider
> integer just when printing?
>
>   Brian

Thanks Brian. I wasn't aware that iostream would do that. You're
right, uint8_t is big enough, iostream just prints out the extendend
ASCII char rather than the int on std::cout. This works:

void process_uint8_t( const std::string& bytes )
{
    const boost::uint8_t * data_ptr;
    boost::uint8_t data;

    data_ptr = reinterpret_cast<const boost::uint8_t*>(bytes.data());
    data = *data_ptr;

    // print ascii
    std::cout << data << "," << sizeof(data) << std::endl;

    // print int
    std::cout << (unsigned int)data << "," << sizeof(data) <<
std::endl;
}

Thanks for pointing that out.

Brad


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net