Crear la funcion gotoxy(), en dev-c++ ... ejemplo sencillo.
Saliéndome un poco del tema de mis anteriores post, en esta ocasión les voy a enseñar un truco sencillo y fácil de aplicar a nuestros programas de C++. Como podrán haberse dado cuenta, en la mayoría de los compiladores actuales, especialmente los que son de software libre. No existe la función que en el antiguo compilador de BORLAND, llamábamos "gotoxy()", la razón por la cual no existe en la cabecera <Windows.h> la desconozco. Pero en esta ocasión les mostrare como crear desde nuestro compilador Dev- C++ , esa función "gotoxy()".
Pero , ¿Para que sirve gotoxy()? , Bueno sencillamente nos permite manipular la posición en la pantalla de lo que nuestra aplicación envié de salida, pueden ser caracteres, números, etc.
Ok, dicho esto ahora si vamos al ejemplo en C++:
#include <stdio.h>
#include <windows.h>
void gotoxy(int x,int y){
HANDLE hcon;
hcon = GetStdHandle(STD_OUTPUT_HANDLE);
COORD dwPos;
dwPos.X = x;
dwPos.Y= y;
SetConsoleCursorPosition(hcon,dwPos);
}
int main(){
gotoxy(15,10);
printf("*");
return 0;
}
Bien, aquí podemos ver que existe una función de tipo "void", ¿que significa eso?, significa que esta función cuyo nombre es "gotoxy", NO RETORNA ningún valor al terminar su ejecución, la razón es que en realidad solo deseamos que "haga" algo, no que nos "devuelva" algo.
Las instrucciones dentro de la función "gotoxy()" están definidas en la cabecera , no voy a entrar mucho en detalle puesto que ya profundizaremos mas adelante acerca de esto. Lo único que les puedo comentar, es que estamos utilizando un tipo genérico de "punteros"(ya los veremos próximamente) que lo que hacen es obtener primeramente, el control de nuestra ventana de salida, en este caso la consola de Windows, y además a partir de dos parámetros enteros ( x, y) asignarle una posición en forma de coordenada donde se imprimirán los datos de salida.
buenisima la funcion
ResponderEliminarGracias por la ayuda, veras que es bastante amable de tu parte explicar esto. Gracias.
ResponderEliminarGracias por la ayuda, veras que es bastante amable de tu parte explicar esto. Gracias.
ResponderEliminarUtil recurso grafico, gracias
ResponderEliminarGracias a todos por comentar y que bueno que les sirvió .. saludos!
ResponderEliminargracias me compilo mi programa
ResponderEliminarPorque me sale un error con las librerias conio.h y windows.h
ResponderEliminaral usar el gotoxy ?
Porque me sale un error con las librerias conio.h y windows.h
ResponderEliminaral usar el gotoxy ?
oye abre tus ojos mira hacia arriba disfruta las cosas buenas que tiene la vida lalalallalalala lalalala lalaalal lalala lala okno me podrias ayudar un poco mas es que casi no entendi
ResponderEliminarY esto sólo sirve para Devc++ ?
ResponderEliminarY esto sólo sirve para Devc++ ?
ResponderEliminarTengo un problema, en el ejercicio que lo quiero meter, me dice que [Error] 'gotoxy' was no declared in this scope, entonces copie tal cual este ejercicio y me sale lo mismo, ya puse todas la librerias que son stdio, conio, windows, stdlib, math, entre otras, todas con.h al final y nada, ayudaaaaaa, mi version de dev c++ es 5.11
ResponderEliminardepende, le pusiste la coordenadas correctamente?
Eliminartalves lo escribiste mal, o normalmente el error esta en la parte de arriba de donde te señala
No vi el código, quizás si lo viera diría donde está el error. Lo que te puede estar pasando es que definiste el procedimiento gotoxy después del main y no definiste el prototipo de la función
Eliminarmuchas gracias impecable el aporte!!!
ResponderEliminarhola disculpen una duda
ResponderEliminarcorro ese programa pero solo baja filas no recorre las columnas
solo baja
alguien podria decirme x que
puede que hayas confundido las columnas con los renglones... ej:
Eliminargotoxy(columnas,renglones);
printf("lo que quieras");
return 0;
Preferiría usar printf, sería más compatible con los demás sistemas
ResponderEliminarEsta muy buena la funcion a mi me funciono, pero necesito saber las coordenadas para poder llenar x, no se si hay alguna forma de saber las coordenadas de lo que es el compilador o alguna forma que lo muestre espero alguien me ayude
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarexcelente para codeblocks!!,gracias
ResponderEliminardisculpa amigo me podrias audar con este ejercicio.
ResponderEliminarCrear una función llamada "rotulo", que tome como parámetro una cadena de texto, no devuelva ningún valor, y
escriba en pantalla ese texto centrado (suponiendo una anchura de pantalla de 80 letras) y en la línea siguiente
escriba guiones para que el rótulo parezca subrayado (tantos guiones como letras formen la palabra).
void rotulo(char *r){
Eliminarint lon = strlen(r);
gotoxy(30,12);
cout << r << endl;
gotoxy(30,13);
for(int i = 0; i<lon; i++){
cout << "*";
}
}
int main (){
char r [1024];
cout << "Introduce la frase: "<< endl;
cin.get(r, 200);
rotulo(r);
}
Quisiera saber si hay una forma de que solo tome un valor x puesto que el código que tengo es una lista de estudiantes donde se le hará modificaciones cuantas sea hasta que el usuario desee terminar por lo que no se cuales son las coordenadas y, y hacer un contador seria algo tedioso en el código que tengo.
ResponderEliminarMuchas gracias
No sirve para nada esta informacion
ResponderEliminargotoso
Eliminaramen
q hubo mi pes
ResponderEliminarhay perdon gotoxy
ResponderEliminaramen
Eres el mejor gracias me ayudo mucho para mi programa!!!
ResponderEliminarse que hac emucho nade contesta, pero no perdo nada con preguntar. use tu funcion pero me arroa este error
ResponderEliminarcollect2.exe [Error] ld returned 1 exit status
y no se que hacer
Amigo, es tu antivirus. Desactívalo al momento de usar Dev C++. A mí me funcionó perfectamente, e igual, me mortifiqué buscando en las librerías, sin éxito. Así que, inténtalo.
EliminarPD: Espero que aún no hayas terminado tu semestre y te sirva. XD
Intento usa este codigo en una App de android que se llama CxxDroid y me arroja el siguiente error: " '' file not found" ¿Alguna sugerencia para solucionar el problema?
ResponderEliminar#include
ResponderEliminar#include
#include //usaremos la biblioteca
//podemos nombrar las variables "x" y "y" como queramos
// X Y
void gotoxy(int gato,int perro){
//podemos nombrar las variables HANDLE y COORD como queramos
HANDLE taquito;
taquito = GetStdHandle(STD_OUTPUT_HANDLE);
COORD ayuwoki;
/*podemos colocar cualquier nombre por ejemplo "ayuwoki" lo que si es
obligatorio es que siempre debe terminar en ".X" o ".Y" respectivamente */
ayuwoki.X = gato; //Declaramos gato como X
ayuwoki.Y= perro; //Declaramos perro como Y
SetConsoleCursorPosition(taquito, ayuwoki);
}
void main(){
/* NOTAS:________________________________________________________________________
Antes de cada (printf) debemos colocar la funcion gotoxy para indicar la pocicionde imprecion
de la palabra, en este caso la coordenada X no cambia mientras que la coordenada Y se dirige
hacia abajo de la pantalla.
Si colocamos numeros negativos, estos siempre tendran un valor de 0 en a la hora de compilar.
Si colocamos dos (printf) en la misma pocición, el programa solo compilara el primero.
si colocamos una palabra muy grande y en una pocicion y colocamos mas palabras en pociciones
cercanas a esta, las palabras posteriores se sobre pondran sobre la primera palabra.
EJEMPLO
cambien la "H" por la palabra "hola" sin quitar los demas (printf), cuando compile usted podra
ver que en lugar de imprimir "H O L A", este imprimira "hoOaL A" siendo que la letra "O" se
sobrepuso en la letra "l" de la palabra "hola"
*/
gotoxy(1,0);
printf("hola");
gotoxy(3,0);
printf("O");
gotoxy(5,0);
printf("L");
gotoxy(7,0);
printf("A");
printf("\n\n");
system("pause");
}
doouuuuu aca desde la sala de info de thomas
ResponderEliminarQué es hcon?
ResponderEliminaridm crack for pc is a free and open source application that can help you manage your projects and other things that is well known for its good usability, and above all its price, totally free.
ResponderEliminarFuncionó correctamente, Gracias por la apotación,
ResponderEliminar