Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/09/2011, 07:11
Fw190
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 5 meses
Puntos: 73
Respuesta: Leer archivo - caracter 26

El carácter ASCII 26 (también representado como Ctrl-Z) es la marca de fin de archivo para archivos de texto (no binarios). Cuando lees un archivo de texto (abierto como archivo de texto), la lectura finaliza al llegar a ese carácter ASCII 26. Si intentas continuar leyendo el archivo, la respuesta que obtienes suele ser la repetición de la última lectura (al menos, este es el comportamiento que he observado en todos los compiladores que he utilizado, tanto en DOS/Windows como en Unix/Linux).

Aunque, por lo que veo, estás utilizando fread para leer carácter a carácter, el problema que citas puede proceder del hecho de que hayas abierto el archivo en modo texto. Si haces, por ejemplo,

pFile = fopen (NombreArchivo, "r")

estás abriendo el archivo en modo texto (que es el modo por defecto), con lo que, aunque leas con fread (que, en principio, es para archivos binarios), deja de leer al llegar al carácter de fin de archivo.

Para trabajar en modo binario, tendrias que abrir el archivo en modo binario:

pFile = fopen(NombreArchivo, "rb")

con lo que dejas de tener el problema de la marca de final de archivo (sería un byte como cualquier otro).