Sigue habiendo un problemilla.
::app me sitúa al final del fichero siempre antes de cualquier operación de salida, incluso después de hacer seekp
Bueno, voy a investigar un poco por mi cuenta. Si no consigo nada lo haré sin streams.
::app me sitúa al final del fichero siempre antes de cualquier operación de salida, incluso después de hacer seekp
Bueno, voy a investigar un poco por mi cuenta. Si no consigo nada lo haré sin streams.
Si, precisamente por eso te dije que el calculo de posiciones lo tendrías que cambiar. Es la forma mas fácil para escribir siempre al final del fichero, en todo caso si luego necesitas sobrescribir una sección moviendo el puntero podes abrir el archivo para input/output.
Código
fstream grabado; grabado.open("datos.dat", ios::out|ios::in| ios::binary);
Pero por supuesto si el archivo no existe esto te dará error, por lo tanto primero tenes que chequear que el archivo exista ya sea abriéndolo para lectura y verificando las salidas:
Citar
On failure, the failbit flag is set (which can be checked with member fail), and depending on the value set with exceptions an exception may be thrown.
o bien utilizando funciones especificas del sistema, o alguna librería multiplataforma.
Saludos!