PDA

Ver la versión completa : ficheros en borland c++



Giskard
12-10-2002, 05:22
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 fichero\n" );
getch();
return;
}

saludos

<PICCOLO>
12-10-2002, 15:01
para utilizar cout necesitas incluir iostream.h, supongo que eso lo habras hecho ya

<PICCOLO>
12-10-2002, 15:03
la sintaxis del if deberia ser:
if (fichero == NULL)
{
....... lo q sea
}
creo que se te han olvidado las llaves, pero no estoy seguro pruebalo

Giskard
12-10-2002, 18:56
si, tengo incluida las librerías iostream y conio, ese no es el problema.
Tampoco está en las llaves de la sentencia "if" porque, según sé, cuando sólo va una instrucción no se ponen llaves.
También lo he intentado poniendo
char letra[200];
pero de cualquier forma no funciona,
de todos modos gracias

<PICCOLO>
12-10-2002, 21:23
lo de las llaves, esque yo estoy acostumbrado a ponerlas al trabajar en C, si no es eso no veo el problema que podria haber entonces... siento no poderte ayudar

POSIX
13-10-2002, 15:01
Es programa está bien, de todas formas usa un debugger (gdb por ejemplo) para ver que es lo que hace.

Giskard
13-10-2002, 19:43
gracias posix, pero gdb tengo entendido que es para gnu/linux, y mi programa está hecho en borland en windows xp, ¿hay algún otro debugger que me recomiendes?
hay uno que viene con el borland 5.01 pero el problema es que éste lo depura en lenguaje ensamblador.
Hasta luego

POSIX
14-10-2002, 15:07
Hay port de gdb para windows, el mismo Dev-C++ lo usa, con el gdb tienes la opción de ver por donde vas en el código en C y tambien en ensamblador, para hacer esto compila con la opción -g o -ggdb

Giskard
15-10-2002, 03:44
después de todo, el único fallo que tiene ese código es que el punto y coma no va después de la sentencia while de la línea 13, es decir, yo le indico al programa que el bucle acabe justo antes de empezar y es por eso que se queda en blanco y no hace nada.
:p esos puntos y comas son un dolor de cabeza para los principiantes :p
Saludos

POSIX
15-10-2002, 18:56
pues si, tienes razon, yo no vi el punto y coma ese