Hola a todos
En una aplicación que estoy haciendo tengo que escribir en un fichero, pero tengo un problema. 
La situación es la siguiente, tengo un fichero ya creado, por ejemplo este:
- 1       100     (1,8,3) 
- 4       20      () 
- 2       40      (2,6) 
-   
Y se me presentan dos situaciones, la de escribir al final de una linea y la de sobreescribir un dato.
Supongamos la situación 1 que la de escribir al final de una linea:
- fstream Fich("students.txt", ios::in | ios::out); 
-   
- // Va leyendo los datos, hace diversas cosas con ellas y llega al final de la linea 
-   
- long lon = Fich.tellg(); 
- Fich.seekp(lon, ios::beg); 
- Fich << " OK" << endl; 
-   
Al hacer esto obtengo como resultado lo siguiente:
- 1       100     (1,8,3) OK 
- 0       () 
- 2       40      (2,6) 
-   
Lógicamente no es el resultado que esperaba pues he perdido parte de la informacón de la segunda linea y eso no me intersa. ¿Qué puedo hacer para solucionar este problema? 
Con respecto a la segunda situación, la de sustituir un valor, lo que me interesa es borrar un valor, por ejemplo el 100, del fichero y en base a unos parámetros o poner un valor distinto o no poner nada, lo que quedaría algo así:
No poner nada
- 1       (1,8,3) 
- 4       20      () 
- 2       40      (2,6) 
-   
Sustituir por otro valor
- 1       12     (1,8,3) 
- 4       20      () 
- 2       40      (2,6) 
-   
¿Sería esto posible? cómo lo puedo hacer.