No es exactamente los mismo que lo de C (en C seria "wb"), al abrir un archivo con únicamente el flag fstream::out y no tener el fstream::in ya que si el archivo existe se borrará, lo que en realidad quieres hacer es abir un fstream con los flags in, out y binary en el segundo ejemplo y funcionará correctamente.
Aquí te dejo una referencia que relaciona y explica brevemente la relación entre los flags de C y los flags de C++
http://en.cppreference.com/w/cpp/io/basic_filebuf/open