Bueno, eso se llama fichero de texto (por eso "se ve en el bloc de notas") y fichero binario (de ahí
ios::binary). Todos los ficheros tienen formato porque si no serían datos aleatorios.
la lectura de ficheros sin formato no hace lo que deberia, simlemente me muestra una serie de numeros sin sentido
f.write(reinterpret_cast<const char *>(&nombre),sizeof(nombre));
Es lo que tú has escrito en el fichero: punteros a punteros.
char * nombre es un puntero, así que
&nombre es la dirección de memoria del puntero.