• Miércoles 24 de Abril de 2024, 07:33

Autor Tema:  Re: ficheros en borland c++  (Leído 2333 veces)

giskard

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
    • http://giskard.fadlan.com
Re: ficheros en borland c++
« en: Domingo 13 de Octubre de 2002, 00:43 »
0
Hola, agradecería que me ayudaran a corregir el error en este código, se
supone que en un archivo tengo un dibujo ascii, y quiero que aparezca cuando
llamo a la función fichero, sí compila sin errores, pero al ejecutar el
programa se queda la pantalla en blanco y no pasa nada, sé que el error se
encuentra dentro de esta función, porque ya probé sin esa función y si corre
bien el programa
esta es la funcion:

void fichero()
{
FILE *fichero;
char letra;
clrscr();
fichero = fopen("dibujo.txt","r");
if (fichero == NULL) cout<<"error en el archivo";
letra = getc(fichero);
while (!feof(fichero));
{
printf("%c",letra);
letra = getc(fichero);
}
if (fclose(fichero)!=0)
printf( "Problemas al cerrar el ficheron" );
getch();
return;
}

saludos

Ismael

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: ficheros en borland c++
« Respuesta #1 en: Domingo 20 de Octubre de 2002, 21:31 »
0
Es una pena que un vulgar punto y coma te haya causado tantos problemas.
Tienes:

while (!feof(fichero));

y el ; te anula el bucle y no lee el archivo ni imprime nada.
Si lo quitas, va bien.
si quieres algo de archivos en C, mira en
www.geocities.com/ismaelcamararero
Saludos    ;)

giskard

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
    • http://giskard.fadlan.com
Re: ficheros en borland c++
« Respuesta #2 en: Lunes 21 de Octubre de 2002, 04:33 »
0
tienes razón, ese error ya lo habían hecho ver, es un error  que he cometido muchas veces, lo malo es que esta vez el compilador no se dio cuenta y aún así creó el ejecutable.
probare, saludos

Ismael

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
ficheros en borland c++
« Respuesta #3 en: Lunes 21 de Octubre de 2002, 13:10 »
0
El compilador no tiene porqué darse cuenta de que tu has puesto un ; al final de la instrucción while ya que eso no es ninguna instrucción que genere error.
De hecho se puede emplear un bucle de ese tipo, con ; para generar un determinado efecto, como por ejemplo un delay:
 ...
 long cont=0;
 ...
 while((cont++)<100000000);
ejecuta el bucle, produciendo un retardo.
Salu2  ;)