1
« en: Lunes 9 de Agosto de 2004, 06:05 »
Qué tal, antes que nada saludos y espero esto aún te sirva...
Resulta que encontré varios errores, que son algo delicados a la hora de programar, pero iwal se corrigen con práctica... y son los siguientes:
1.- Primero que nada debemos ver la forma en la que declaraste la variable 'capitulo_opcion'.
2.- ' capitulo_opcion' es la misma que quisiste imprimir en outtextxy?, si es así te equivocaste 'cadena_opcion'. Asumí que era la misma.
3.- Recordarás que la pantalla en DOS es de 640X480. Bueno, tú problema está en que al asumir que posx=400, esto quiere decir que estarás más inclinado a la derecha y va aumentando de 5 en 5 según tu for(te faltó el '=', sería posx+=5, si no no da, y por cierto tu contador se detiene en 2 letras) después, en tu outtextxy pones que la posición en 'y' sea de 460 esto es, hasta abajo!!. No sé si lo quieras centrado, pero para eso tienes dos funciones
getmaxx() para x , que sería posx=getmaxx()/2; //eso te lo pone a la mitad en x
getmaxy() para y, que sería posy=getmaxy()/2;//esto en y
posx=400;
for (cont = 0; cont <= 2; cont ++,posx+5)
{
capitulo_opcion[cont]=getch();
outtetxy(posx,460,cadena_opcion);
}
4.- Ahora, dependiendo de como declaraste cadena_opcion, que debe ser
char cadena_opcion[10]; //o algo así
al llamarla en outtextxy(posx,posy,cadena_opcion);/*asi te saca la cadena completa
en cada for, lo que debe ir si es
que quieres que solo salga letra
por letra, es:*/
outtextxy(posx,posy,&cadena_opcion[cont]);
con eso queda...
espero haberme explicado, si no... agrégame a tu msn y lo platicamos.
Saludos y suerte
PD te posteo el codigo que hice yo y quedó...
char cadena_opcion[10];
x = getmaxx() / 2;
y = getmaxy() / 2;
for (int cont = 0; cont <= 9; cont++)//aqui declaré cont dentro del for,no es necesario declararlo antes, por si te fala eso
{ //Limpiamos la cadena de cualquier basura
cadena_opcion[cont]=NULL; }
for (cont = 0; cont <= 9; cont ++,x+=10)
{
cadena_opcion[cont]=getch();
outtextxy(x,y,&cadena_opcion[cont]);
}