Boost::serialization library handles this rather elegantly. I’ve used it in several projects. There’s an example program, showing how to use it, here.
The only native way to do it is to use streams. That’s essentially all the
Boost::serialization library does, it extends the stream method by setting up a framework to write objects to a text-like format and read them from the same format.
For built-in types, or your own types with
operator>> properly defined, that’s fairly simple; see the C++ FAQ for more information.