ifstream f("nombrefich");
if (!f) return 1;
do {
f.getline(nombre, 256, ",");
if (f.eof()) break;
seguir leyendo
++i;
} while (siempre que haya sitio para lo leído)
No es tan sencillo saber si se ha acabado de leer el fichero.
Cuando se hace una lectura simple com en el caso de leer un entero f >> n; aunque el entero
esté al final del fichero y no haya otro byte detrás, eof() no salta. Para que salte hay que leer
otro número o cualquier otra cosa más, entonces es cuando salta.
Sin embargo, si se lee una línea con f.getline(…) eof() salta solo, ya que getline es más complejo
y trata de encontrar el fin de línea o de lo que sea y esa lectura interna sí que hace saltar
eof() aún habiendo leído ya algo en esa llamada.
Los ficheros binarios son fáciles, pero implican saber acerca de punteros y saber obtener
direcciones de variables… cosa que a muchos asusta. Por lo demás basta con leer/escribir/posicionar
o sea f.read(desde, cuánto); f.write(desde, cuánto); f.seekg(distancia, ios::beg);
Los ficheros quedan como una parte esencial de la programación en general a nivel de laboratorio
y se usan en todas las situaciones en que se quiera que los datos permanezcan, que son muchas
situaciones

No hay comentarios:
Publicar un comentario