Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Duda Algoritmos
Autor Mensaje
robertogomez Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
-----

Mensajes: 3
Agradecimientos dados: 2
Agradecimientos: 0 en 0 posts
Registro en: Feb 2016
Mensaje: #1
Duda Algoritmos Finales Algoritmos y Estructuras de Datos
hola a todos, hace mucho que curse algorimos y la estoy por dar ahora, y hay algo que no me esta cerrando.

Cuando se esta leyendo un archivo, lo que dice el apunte oficial es.



C
main()
{
FILE *f1, f2;
int c;
f1 = fopen(“entrada”, “r”);
f2 = fopen(“salida”,”w”);
c = fgetc(f1);
while (!feof(f1)) {
fputc(c, f2);
c = fgetc(f1);
}
fclose(f1);
fclose(f2);
return 0;
}



Solución algorítmica
AbrirArchTextoLectura(f1, “entrada”)
AbrirArchTextoEscritura(f2,”salida”)
LeerCaracter(f1,c)
Mientras(!feof(f1))
GrabarCaracter(f2,c)
LeerCaracter(f1,c)
FinMientras
Cerrar(f1)
Cerrar(f2)



Mi pregunta es que, al leer el caracter previo al while, si el archivo solo tiene 1 caracter, al leerlo el puntero no se posiciona en el eof y por ende no entra a la repetitiva ?


Gracias!
10-02-2016 10:50
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
FarSalazar Sin conexión
Militante
"Si el viento cambia... E...
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 79
Agradecimientos dados: 0
Agradecimientos: 18 en 15 posts
Registro en: Apr 2014
Mensaje: #2
RE: Duda Algoritmos
Hola.
Si tiene un caracter, yo creo que sí. Deberías probarla, si no anda, podrias reemplezar el while por un do-while

do {
c = fgetc(f1);
fputc(c, f2);
}while (!feof(f1))



Saludos
10-02-2016 11:52
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
robertogomez Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
-----

Mensajes: 3
Agradecimientos dados: 2
Agradecimientos: 0 en 0 posts
Registro en: Feb 2016
Mensaje: #3
RE: Duda Algoritmos
Pero para N caracteres, va a poder leer n-1, pq el ultimo no lo va a tomar por estar en EOF, es asi? me parece raro pq esta en el pdf de la materia..
10-02-2016 12:13
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Dios Sin conexión
Presidente del CEIT
.
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.057
Agradecimientos dados: 33
Agradecimientos: 150 en 129 posts
Registro en: Dec 2011
Mensaje: #4
RE: Duda Algoritmos
EOF es un caracter en sí mismo*, por lo tanto hay que leerlo. Así que lee el primero, feof es falso, ejecuta fputc y vuelve a leer. Ese caracter que lee es el EOF y ahí sale del while.

*Por decirlo de algún modo. No es EXACTAMENTE un caracter, pero internamente igual hay que hacer una lectura para que se alcance esa marca.

«(…)Se arman paquetes… ¿eh?… tecnológicos… tecnológicos portes de… en donde están… este… interrelacionados con las otras capas.(…)»
(Este mensaje fue modificado por última vez en: 11-02-2016 18:00 por Dios.)
10-02-2016 18:36
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Dios recibio 1 Gracias por este post
robertogomez (11-02-2016)
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.