elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 02:56  


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Problema en ejercicio de ficheros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema en ejercicio de ficheros  (Leído 240 veces)
DickGumshoe

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
Problema en ejercicio de ficheros
« en: 4 Febrero 2012, 21:33 »

Hola.

Estoy empezando con el tema de ficheros.

Tengo este ejercicio:

Código
/*Un programa que pregunte un nombre de fichero y muestre en pantalla el contenido de
ese fichero, haciendo una pausa después de cada 25 líneas, para que dé tiempo a
leerlo. Cuando el usuario pulse intro, se mostrarán las siguientes 25 líneas, y así hasta
que termine el fichero.*/

 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 
int main()
{
   FILE* fichero;
   char nombre[50];
   char linea[81];
   char pausar[2];
   int i;
 
   printf("Introduce un nombre");
   fgets(nombre,49,stdin);
   i=0;
fichero = fopen(nombre, "rt");
if (fichero == NULL)
{
printf("No existe el fichero!\n");
exit(1);
}
while (! feof(fichero)) {
               i=i+25;
fgets(linea, i, fichero);
puts(linea);
do{
gets(pausar);
}
while(strcmp(pausar,"")!=0);            
 
}
 
fclose(fichero);
 
   system("pause");
   return 0;
}
 

Pero tengo varias cosas mal:

- Siempre me dice que el fichero no existe.
- No consigo que pare cada 25 líneas hasta que presione intro sin escribir nada (lo que he conseguido ha sido cada X letras...).

Muchas gracias.

Saludos.


En línea
DickGumshoe

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
Re: Problema en ejercicio de ficheros
« Respuesta #1 en: 4 Febrero 2012, 22:49 »

Vale, he solucionado uno de los problemas. Ya me reconoce cuándo existe y cuándo no un archivo. Lo que he hecho ha sido sustituir fgets por gets.

Pero todavía me queda la otra parte del problema.

Gracias.

Saludos.


En línea
eleon

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: Problema en ejercicio de ficheros
« Respuesta #2 en: 5 Febrero 2012, 00:18 »

Para pausar hasta que le de a intro te basta con poner un "scanf()" al final del bucle.

Saludos.
En línea

DickGumshoe

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
Re: Problema en ejercicio de ficheros
« Respuesta #3 en: 5 Febrero 2012, 15:17 »

Gracias por contestar.

Eso lo tengo, aunque de otra forma (comparando "pausar" con "").

Lo que me falta es que cada 25 líneas pare, que no sé cómo podría hacerlo...
En línea
eleon

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: Problema en ejercicio de ficheros
« Respuesta #4 en: 5 Febrero 2012, 15:27 »

Con un contador. Si cada vez que se ejecuta el bucle se imprime una línea, debes llevar un contador que calcule el número de lineas impresas y al llegar a 25 con un condicional te pida presionar {ENTER}. Ejemplo:

Código
short unsigned int contador = 0;
while (condicion)
{
//Instrucciones para imprimir la línea
contador += 1;
 
if (contador == 25)
{
scanf ("");
contador = 0; //Lo reiniciamos para que vuelva a contar 25 líneas
}

Y en esta parte:

Código
do{
gets(pausar);
}
while(strcmp(pausar,"")!=0);

No es correcto el uso de gets, es aconsejable cambiarlo por scanf. Si has declarado la cadena "pausar" con 2 elementos, el usuario puede perfectamente introducir "sidhashi {ENTER}" y gets lo recoge todo almacenándolo en zonas de memoria consecutivas y arriesgándote a que sobreescriba sobre otros datos en uso.

Saludos.
« Última modificación: 5 Febrero 2012, 15:30 por eleon » En línea

DickGumshoe

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
Re: Problema en ejercicio de ficheros
« Respuesta #5 en: 5 Febrero 2012, 15:50 »

Muchísimas gracias.

Ya he entendido cómo se hace.

Saludos.
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema con uso de ficheros
Programación C/C++
darksoul_bcn 5 736 Último mensaje 16 Enero 2006, 21:33
por Cobac
Ejercicio de ficheros « 1 2 »
Programación General
Jess_Kapria 15 1,173 Último mensaje 1 Abril 2006, 18:42
por Casidiablo
Ejercicio sobre ficheros
Programación C/C++
H4CKO_R 7 740 Último mensaje 19 Marzo 2009, 16:30
por .;.
Desesperado. Ayuda con ejercicio de ficheros.
Programación C/C++
TheMaker 2 309 Último mensaje 3 Mayo 2009, 00:52
por TheMaker
Ejercicio C manejo de ficheros
Programación C/C++
Gr1nD3r 3 1,813 Último mensaje 26 Julio 2010, 07:28
por do-while
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines