Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Es posible usar gotoxy() en C++?

Estas en el tema de Es posible usar gotoxy() en C++? en el foro de C/C++ en Foros del Web. Hola, tengo entendido que la libreria <conio.h> para poder usar gotoxy solo esta disponible para C. Me gustaria usarla en C++. Hay alguna forma de ...
  #1 (permalink)  
Antiguo 05/11/2015, 13:20
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 5 meses
Puntos: 5
Pregunta Es posible usar gotoxy() en C++?

Hola, tengo entendido que la libreria <conio.h> para poder usar gotoxy solo esta disponible para C.

Me gustaria usarla en C++.
Hay alguna forma de hacerlo?.
  #2 (permalink)  
Antiguo 05/11/2015, 13:52
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Es posible usar gotoxy() en C++?

Se puede? Si
Es necesaria? No
No deberías acostumbrarse a usar librerías no estándares pero poder se puede. Incluso puedes crear tu propia gotoxy con la ayuda de la librería de windows.
  #3 (permalink)  
Antiguo 05/11/2015, 14:16
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: Es posible usar gotoxy() en C++?

Cita:
Iniciado por aguml Ver Mensaje
Se puede? Si
Es necesaria? No
No deberías acostumbrarse a usar librerías no estándares pero poder se puede. Incluso puedes crear tu propia gotoxy con la ayuda de la librería de windows.
Entiendo, es que es cool cuando puedes imprimir cosas en el lugar deseado de la consola y asignarle colores, se ve muy atractico.

Pense que se podia usar con normalidad en C++.
  #4 (permalink)  
Antiguo 05/11/2015, 14:26
Avatar de xKuZz  
Fecha de Ingreso: febrero-2015
Ubicación: nullptr
Mensajes: 183
Antigüedad: 9 años, 2 meses
Puntos: 27
Respuesta: Es posible usar gotoxy() en C++?

C++ no te ofrece nada en el estándar que cumpla dicha función, aunque como bien ves ahí librerías que lo soportan. Siendo un trabajo para la universidad es posible que tu profesor quiera ver tus capacidades estrictamente en C++ y no quiera que las utilices. En cuanto a lo que ha dicho aguml de que no debes acostumbrarte a utilizar librería no estándares totalmente en contra, está bien comprender cómo funcionan las cosas y si quieres rehacer lo que ya está hecho adelante, pero si ya está hecho y, probablemente, por gente que tenía mucha idea de lo que hacía, utilizar librerías o frameworks de más alto nivel es algo a lo que sí debes acostumbrarte y familiarizarte bajo mi punto de vista.
  #5 (permalink)  
Antiguo 05/11/2015, 16:08
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Es posible usar gotoxy() en C++?

Cita:
Iniciado por xKuZz Ver Mensaje
C++ no te ofrece nada en el estándar que cumpla dicha función, aunque como bien ves ahí librerías que lo soportan. Siendo un trabajo para la universidad es posible que tu profesor quiera ver tus capacidades estrictamente en C++ y no quiera que las utilices. En cuanto a lo que ha dicho aguml de que no debes acostumbrarte a utilizar librería no estándares totalmente en contra, está bien comprender cómo funcionan las cosas y si quieres rehacer lo que ya está hecho adelante, pero si ya está hecho y, probablemente, por gente que tenía mucha idea de lo que hacía, utilizar librerías o frameworks de más alto nivel es algo a lo que sí debes acostumbrarte y familiarizarte bajo mi punto de vista.
No me expliqué bien. Me refería a que ahora que está aprendiendo es mejor no utilizarlas y aprender cómo hacer las cosas sin ellas. Luego por supuesto. Yo uso algunas bastante buenas. En c++Builder uso componentes ya hechos que hacen cosas espectaculares pero es fundamental saber fabricarse sus propios componentes por ejemplo. Yo empecé a usar c++Builder sin tener apenas idea de c++ pero con una base en c. El problema es que en c no existen las clases, los templates, herencia, polimorfismo,... pues si usas librerías que te lo dan todo hecho sin saber hacer nada por uno mismo el camino será más duro. Lo digo por propia experiencia ya que me manejo en c++Builder después de muchos años pero como tenga que hacer algo complejo que requiera saber bastante de c++ me las veo y me las deseo y por eso estoy empoyando ahora c++.
  #6 (permalink)  
Antiguo 06/11/2015, 01:41
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Es posible usar gotoxy() en C++?

Cita:
Iniciado por aguml Ver Mensaje
El problema es que en c no existen las clases, los templates, herencia, polimorfismo,...
En esto te voy a corregir un poco.

Si bien es cierto que C no ofrece un mecanismo propio para gestionar herencia y polimorfismo, es perfectamente posible implementar dichos mecanismos en C, lo único que tienes que currarte una función para cada caso. Y bueno, también es cierto que hacer uso de este mecanismo es más delicado que en el caso de C++ porque no tienes ninguna ayuda por parte del compilador.

De hecho se usa algo parecido al polimorfismo cuando, por ejemplo, se trabaja con sockets... si has hecho alguna aplicación con sockets seguro que recuerdas tener que hacer casts a pelo en las estructuras de los sockets para poder acceder a determinados valores.

En cualquier caso, un ejemplo de polimorfismo al más puro estilo C:

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef enum
  5. {
  6.   tipoA,
  7.   tipoB
  8. } Tipo;
  9.  
  10. typedef struct
  11. {
  12.   Tipo tipo;
  13.   int valor1;
  14. } A;
  15.  
  16. typedef struct
  17. {
  18.   Tipo tipo;
  19.   int valor1;
  20.   char valor2;
  21. } B;
  22.  
  23.  
  24. A* getNewA( int valor)
  25. {
  26.   A* toReturn = (A*)malloc(sizeof(A));
  27.   toReturn->tipo = tipoA;
  28.   toReturn->valor1=valor;
  29.   return toReturn;
  30. }
  31.  
  32. B* getNewB(int valorInt, char valorChar)
  33. {
  34.   B* toReturn = (B*)malloc(sizeof(B));
  35.   toReturn->tipo = tipoB;
  36.   toReturn->valor1 = valorInt;
  37.   toReturn->valor2 = valorChar;
  38.   return toReturn;
  39. }
  40.  
  41. int main()
  42. {
  43.   A* array[2];
  44.  
  45.   array[0] = getNewA(4);
  46.   array[1] = (A*)getNewB(6,'B');
  47.  
  48.   printf("Los tratamos todos como si fuesen de tipo A:\n");
  49.   int i;
  50.   for( i=0; i<2; i++ )
  51.   {
  52.     A* ptr = array[i];
  53.     printf( "\tElemento %d : tipo=%d, valor1=%d\n", i, ptr->tipo, ptr->valor1 );
  54.   }
  55.  
  56.   printf("Para acceder a valores propios de cada tipo hay que hacer conversiones:\n");
  57.   for( i=0; i<2; i++ )
  58.   {
  59.     A* ptr = array[i];
  60.     switch( ptr->tipo )
  61.     {
  62.        case tipoA:
  63.          printf( "\tElemento de tipo A: valor1=%d\n", ptr->valor1);
  64.          break;
  65.  
  66.        case tipoB:
  67.        {
  68.          B* ptrB = (B*)ptr;
  69.          printf("\tElemento de tipo B: valor1=%d valor2=%c\n", ptrB->valor1, ptrB->valor2);
  70.          break;
  71.        }
  72.     }
  73.   }
  74.  
  75.   for(i=0;i<2;i++) free(array[i]);
  76.  
  77.   return 0;
  78. }

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.

Etiquetas: posible, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:34.