Autor
|
Tema: Recorrer un archivo recursivamente. (Leído 753 veces)
|
MatiDiyo
Desconectado
Mensajes: 3
|
Hola gente que tal? Estoy atorado en un ejercicio de recursividad, en el cual tengo que buscar el menor elemento de un archivo de enteros. No le puedo encontrar la forma de recorrer el archivo recursivamente. #include <windows.h> #include <stdio.h> #include <conio.h>
int main() { FILE *fp; int *datos;
printf("%i ", BuscarMenorArchivo_Recursiva(&fp, &datos));
}
int BuscarMenorArchivo_Recursiva(FILE *fp, int *datos) { fp = fopen("datos.dat", "rb");
fread(datos, sizeof(int), 1, archi);
int menor = (*datos);
if(feof(fp) != NULL) { menor = BuscarMenorArchivo_Recursiva(archi, datos);
fread(datos, sizeof(int), 1, fp);
if( (*datos) < menor) menor = (*datos); }
fclose(fp); return menor; }
Saludos gente 
|
|
« Última modificación: 5 Septiembre 2018, 16:37 pm por MatiDiyo »
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.479
|
Para hacer algo bonito debes hacer uso de dos funciones: Una que usarás de interfaz y la otra quien realmente trabajará con la recursión. Cuidado que el archivo puede estar vacío y deberías comprobar eso antes de usar estas funciones. Otra idea sería modificar la función inicial para que devuelva si ha habido error accediendo al archivo o éste se encuentra vacío y devuelva por referencia el valor conseguido. static int f_interno(FILE *fp, int menor) { int actual; int siguiente; fread(&actual , sizeof(int), 1, fp ); siguiente = f_interno(fp, menor); menor = actual<siguiente? actual : siguiente; } return menor; } int f(FILE *fp) { int menor; fread(&menor , sizeof(int), 1, fp ); menor = f_interno(fp, menor); return menor; }
|
|
|
En línea
|
while(is_alive(yourself)) { make_true(yourself, yourdreams); }
|
|
|
MatiDiyo
Desconectado
Mensajes: 3
|
Hola MAFUS, gracias por la ayuda el código funciona de maravilla. Aunque tengo una duda del porque hiciste la función con el "static". Muchas gracias y saludos 
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.479
|
Sirve para que un objeto global no sea visto desde fuera del archivo, así si hicieras una librería esa sería la forma de ocultar esas función que no quieres que la gente use. Cómo un método private en POO.
|
|
|
En línea
|
while(is_alive(yourself)) { make_true(yourself, yourdreams); }
|
|
|
MatiDiyo
Desconectado
Mensajes: 3
|
Gracias por el dato, no lo sabía.
Saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
listar carpetas y subcarpetas recursivamente con vbscript
Scripting
|
nqnnelson
|
1
|
8,246
|
22 Enero 2010, 14:20 pm
por Novlucker
|
|
|
Trabajar Recursivamente
Programación C/C++
|
Black Lotus
|
2
|
1,168
|
7 Marzo 2013, 17:50 pm
por Black Lotus
|
|
|
recorrer archivo binario
Programación C/C++
|
m@o_614
|
3
|
1,793
|
25 Octubre 2013, 17:59 pm
por rir3760
|
|
|
No se cambian los permisos a una carpeta recursivamente en Debian 7
« 1 2 3 »
GNU/Linux
|
ccrunch
|
24
|
6,465
|
23 Enero 2014, 01:38 am
por _Slash_
|
|
|
como recorrer un archivo de palabras vetadas y descartarlas para una comparacion
Java
|
or.gutierrez
|
6
|
2,184
|
4 Noviembre 2014, 20:52 pm
por or.gutierrez
|
|