SoloCodigo
		Programación General => C/C++ => Mensaje iniciado por: giskard en Domingo 13 de Octubre de 2002, 00:43
		
			
			- 
				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
- 
				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 (http://www.geocities.com/ismaelcamararero)
 Saludos    ;)
- 
				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
- 
				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  ;)