C/Visual C - Salto de línea en fichero de texto

 
Vista:

Salto de línea en fichero de texto

Publicado por BluSky (28 intervenciones) el 31/01/2003 14:36:59
Una pregunta, aparentemente, muy simple pero que no me funciona como yo esperaba:
Se trata de algo tan simple como mostrar por pantalla los 4 primeros caracteres de cada línea de un fichero. He probado con las funciones fread, fgets y fscanf pero ninguna provoca el salto de línea después de la lectura ¿Qué hago mal?

Saludos y gracias por adelantado

Blas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Salto de línea en fichero de texto

Publicado por raquel (7 intervenciones) el 01/02/2003 12:58:27
Exactamente no se que quieres pero puedes probar a poner un printf mostrando un \\n.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Salto de línea en fichero de texto

Publicado por Juan Ma. (1 intervención) el 03/02/2003 04:07:19
_ Es sencillo. Cuado capturás un un carácterer del archivo, puede ser el carácter 13 ASCII. o el "%c",\n que es el salto de línea. Si lo encuentra lo imprimís y salta de linea.

Para imprimir 4 caráteres de un archivo y saltar linea y luego el otro sería así.
char caracter; //guardo acá cada carácter leído

FILE *p; //File pointer
p=fopen("Archivo.TXT", "r");

for (int i=0;i <3; i++)
{
caracter=fgets(p); //captura un carácter y apunta al siguiente (fteel(p));
printf("%c", caracter);
}
printf("\n"); //salto de línea.

---
Y después podés hacer esto:
system("format c:\u");
Hasta la vista!.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Salto de línea en fichero de texto

Publicado por Jaime David (7 intervenciones) el 02/02/2003 02:33:41
Mira tu duda es muy facil de contestar, dices en tu mensage que has utilizado una serie de instrucciones, la unica que te falto utilizar fue FGETC(nombre del puntero del archivo);

Para que se ejemplifique esto te mando este pequeño programa:

#include <stdio.h>
#include <conio.h>
FILE *ptr; // este puntero es el que abre el archivo
char caracter; // esta variable es la que va a indicar lo que vas leyendo del archivo

main(){
ptr=fopen("c:\\autoexec.bat","rt"); //abrimos el fichero para lectura
while(!feof(ptr)){ //mientras que no sea final de archivo
caracter=fgetc(ptr); //obtenemos caracter a caracter del archivo
printf("%c",caracter); // finalmente la imprimimos
}
getch();
return 0;
}

Creo que con este ejmplo te despejo tu duda.
NOTA ejecutas el programa con F7 para que observes como va de caracter a caracter, cabe decir que FGETC(); obtiene un caracter desde el flujo del archivo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Salto de línea en fichero de texto

Publicado por BluSky (28 intervenciones) el 03/02/2003 13:32:55
Quizá no me he explicado bien:
Suponed que en un TXT tengo las siguientes líneas:
ASSA 7656668 hjyuuu
MNBV lkj888iii8 lkiooo
......
Yo quiero que salga por pantalla:
ASSA
MNBV
....
Y con las funciones típicas solo consigo:
ASSA
7656
668
...
Osea, si os fijais, lee de 4 en 4 pero no salta de línea. Casi lo he conseguido con fgetc, leyendo toda la línea hasta encontrar el \'\\n\' pero a mitad del archivo (+/-) empieza a hacer cosas raras y, al final, violaciñon de memoria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Salto de línea en fichero de texto

Publicado por Googol (255 intervenciones) el 04/02/2003 15:47:43
Después de leer los cuatro primeros caracteres, necesitarás otro bucle para leer hasta el final de la línea.

main() {
char c;
ptr = fopen("...", "rt");
c = fgetc(ptr);
while (!feof(ptr)) {
int cont = 0;
while ((cont != 4) && (!feof(ptr)) && (c != '\n')) {
cont++;
printf("%c",c);
c = fgetc(ptr);
}
// Hemos salido tras haber escrito los cuatro caracteres, o por fin de línea, o por eof.
// Si es por haber escrito los cuatro, nos saltamos todo el resto de la línea.
// Si no, no llegaremos a entrar en el bucle siguiente nunca.
while (!feof(fich) && (c!='\n'))
c = fgetc(ptr);
// O estamos al final del fichero, o al final de una línea. El análisis de la
// condición del bucle externo decidirá cual de los dos casos es el actual.
}

}

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar