Título: leer caracteres de un archivo Publicado por: m@o_614 en 7 Septiembre 2013, 03:10 am Saludos
Tengo el siguiente codigo que lee el primer y último carácter de un archivo de texto y los muestra en pantalla.La prueba consiste en mostrar el primer y último carácter correctamente independientemente del tamaño del archivo. El codigo ya pude verificar que funciona para textos pequenios como: "Hola mundo" o "Tres tristes tigres tragaban trigo en un trigal", en el caso del primero me aparece primer caracter :H, ultimo caracter: o, pero si se trata de un archivo de texto un poco grande no me imprime el ultimo caracter y no entiendo por que Código
el texto en cuestion tiene mas de 100 caracteres de antemano gracias Título: Re: leer caracteres de un archivo Publicado por: do-while en 7 Septiembre 2013, 10:06 am ¡Buenas!
¿Has comprobado que el último caracter no sea un salto de línea o cualquier caracter de espacio? ¡Saludos! Título: Re: leer caracteres de un archivo Publicado por: m@o_614 en 7 Septiembre 2013, 18:56 pm Saludos do-while pense que con el lseek que tengo: lseef(fd,-1,SEEK_END) el cursor ya se habia posicionado una posicion antes del fin de archivo, crei que con esto seria suficiente
Título: Re: leer caracteres de un archivo Publicado por: roilivethelife en 7 Septiembre 2013, 20:33 pm No, asi te estas posicionando en el penultimo caracter, no en el último.
Cambia el -1 ese por un 0 y debería funcionar. Saludos! Título: Re: leer caracteres de un archivo Publicado por: m@o_614 en 8 Septiembre 2013, 06:42 am Saludos roilivethelife hice lo que me recomendaste y no funciono porque el lseek(fd,0,SEEK_END) me coloca el puntero en el fin de archivo o sea \0 donde no hay ningun caracter y cuando le pongo lseek(fd,-1,SEEK_END) le estoy diciendo que me coloque un lugar antes del fin de archivo o sea en el ultimo caracter pero ni asi funciona
Título: Re: leer caracteres de un archivo Publicado por: ecfisa en 8 Septiembre 2013, 11:11 am Hola m@o_614 .
El valor de EOF depende del sistema de archivos, pero comúnmente es interpretado con el valor -1, por lo que creo que podrías probar de este modo: Código
Saludos :) Título: Re: leer caracteres de un archivo Publicado por: PoCoMoNeY en 8 Septiembre 2013, 11:38 am Bueno yo creo que tu código a le falta en mi opinión es comprobar que el carácter no sea ni un espacio ni un salto de linea , etc.. , tal y como te dijo do-while
Saludos. Título: Re: leer caracteres de un archivo Publicado por: m@o_614 en 8 Septiembre 2013, 21:39 pm Tenian razon, no solo el ultimo caracter era un salto de linea o espacio, sino que los ultimos 4 caracteres tambien eran saltos de linea
Título: Re: leer caracteres de un archivo Publicado por: rir3760 en 10 Septiembre 2013, 04:25 am Tengo el siguiente codigo que lee el primer y último carácter de un archivo de texto y los muestra en pantalla.La prueba consiste en mostrar el primer y último carácter correctamente independientemente del tamaño del archivo. En tu programa no es necesario incluir <unistd.h> y no deberías utilizar fseek ya que se trata de un archivo en modo texto.Tenian razon, no solo el ultimo caracter era un salto de linea o espacio, sino que los ultimos 4 caracteres tambien eran saltos de linea Puedes verificar si el carácter se puede imprimir utilizando funciones como isprint (prototipo en <ctype.h>), mas o menos así:Código
Un saludo |