Boost introduced a new library endian in version 1.58: Types and conversion functions for correct byte ordering and more regardless of processor endianness.
#include <boost/endian/conversion.hpp>
int32_t x;
... read into x from a file ...
boost::endian::big_to_native_inplace(x);
for (int32_t i = 0; i < 1000000; ++i)
x += i;
boost::endian::native_to_big_inplace(x);
... write x to a file ...