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.