[C con Clase] FSTREAMS, Estoy olvidado en algunos conceptos y uso

Salvador Pozo salvador en conclase.net
Mie Mayo 2 13:02:48 CEST 2007


El pasado 2007-04-27 18:26:29, Listero Absoluto escribió:
 
Hola:

LA> Gracias por responder. Un par de preguntas.
LA> 1) fstream tiene un único cursor para lectura y escritura? es decir,
LA> comparte uno solo o tiene dos, uno para cada operacion?

En teoría tiene cursores independientes para lectura y escritura.

En la práctica, depende del compilador. Por ejemplo, con GCC ambos cursores son el mismo, y las funciones seekg y seekp son equivalentes, lo mismo que tellg y tellp.

(Al menos eso me dice la experiencia).

LA> 2) Me encuentro con un problema: cuando el archivo existe, y gracias a
LA> tu respuesta anterior, todo funciona perfectamente. Pero cuando no
LA> existe:
LA> fs.open("file.dat", ios::in);
LA>     // Con esto creo el archivo si no existe
LA>     if (!fs)
LA>         fs.open("file.dat", ios::out | ios::binary);
LA> fs.close();
LA>     fs.open("file.dat", ios::in | ios::out | ios::binary);
LA> Lo abro para crearlo, luego lo cierro y por ultimo lo vuelvo a abrir
LA> para lectura y escritura binaria. Sin embargo algo no funciona bien ya
LA> que las operaciones de lectura y escritura subsecuentes no funcionan
LA> retornando fs.good el valor 0.

No hay nada mal en este fragmento de código. Creo que si la función good devuelve 0 en algún caso es porque hay otro tipo de error.

Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


Más información sobre la lista de distribución Cconclase