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

Dibujar Cuadros con texto en C

Estas en el tema de Dibujar Cuadros con texto en C en el foro de C/C++ en Foros del Web. Hola gente, que tal, tengo una duda que no se como resolver.... Quiero dibujar un cuadro (en modo texto) en C y escribirle cosas adentro, ...
  #1 (permalink)  
Antiguo 18/04/2010, 13:16
 
Fecha de Ingreso: abril-2010
Mensajes: 10
Antigüedad: 13 años, 11 meses
Puntos: 0
Exclamación Dibujar Cuadros con texto en C

Hola gente, que tal, tengo una duda que no se como resolver....

Quiero dibujar un cuadro (en modo texto) en C y escribirle cosas adentro, pero no se como hacer para que me quede bien...les pongo un ejemplo para que se entienda mejor:
Código:
---------------------------------
|     Nombre     |   Apellido    |
---------------------------------
|     Pedro      |   Albino      |
|     Emanuel    |   Gonzales    |
----------------------------------
espero que se entienda...la cosa es que el recuadro quede bien hecho.....

Algo así...pero obviamente que donde va "Pedro" o los demás valores, iría una variable...como puedo hacer para que el gráfico se autodibuje independientementde que tan largo o corto sea un nombre o apellido.
Hay alguna función que haga esto !?

Desde ya muchas gracias ! salduos !

Última edición por Byzs; 18/04/2010 a las 13:28
  #2 (permalink)  
Antiguo 18/04/2010, 16:52
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: Dibujar Cuadros con texto en C

Usa ncurses.
  #3 (permalink)  
Antiguo 18/04/2010, 19:35
aguirremanuel
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Dibujar Cuadros con texto en C

Aquí tienes un ejemplo mi pana :

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define NUM_PERSONAS 3
  5.  
  6. typedef struct Persona  //estructura con los nombres y los apellidos
  7. {
  8.     char nombre[20];
  9.     char apellido[20];
  10. }PERSONA;
  11.  
  12. int main()
  13. {
  14.     PERSONA persona[NUM_PERSONAS];
  15.     int x;
  16.  
  17.     printf("Ingrese 3 nombres y apellidos de personas\n");
  18.     for (x = 0 ; x < NUM_PERSONAS ; x++ )
  19.     {
  20.         printf("\n%der Nombre   : ",x+1); scanf(" %s",persona[x].nombre);
  21.         printf("%der Apellido : ",x+1); scanf(" %s",persona[x].apellido);
  22.     }
  23.     printf("\n\nIMPRIMIENDO DATOS :\n");
  24.     printf("-------------------------------\n");
  25.     printf("|   NOMBRE     |   APELLIDO   |\n");
  26.     printf("-------------------------------");
  27.     for (x = 0 ; x < NUM_PERSONAS ; x++ )
  28.     {
  29.         printf("\n|  %-10s  |  %-10s  |",persona[x].nombre,persona[x].apellido);
  30.         printf("\n-------------------------------");
  31.     }
  32.     printf("\n\n");
  33.     return 0;

Suerte...!!!
  #4 (permalink)  
Antiguo 18/04/2010, 20:02
aguirremanuel
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Dibujar Cuadros con texto en C

Aquí te paso otro ejemplo donde el cuadro se ajusta dependiendo del largo de los nombres y los apellidos introducidos :

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define NUM_PERSONAS 3
  5.  
  6. typedef struct Persona  //estructura con los nombres y los apellidos
  7. {
  8.     char nombre[20];
  9.     char apellido[20];
  10. }PERSONA;
  11.  
  12. int main()
  13. {
  14.     PERSONA persona[NUM_PERSONAS];
  15.     int x;
  16.     int LargoNombre = 6; //largo de la palabra NOMBRE
  17.     int LargoApellido = 8; //largo de la palabra APELLIDO
  18.  
  19.     printf("Ingrese 3 nombres y apellidos de personas\n");
  20.     for (x = 0 ; x < NUM_PERSONAS ; x++ )
  21.     {
  22.         printf("\n%der Nombre   : ",x+1); scanf(" %s",persona[x].nombre);
  23.         printf("%der Apellido : ",x+1); scanf(" %s",persona[x].apellido);
  24.     }
  25.     //calculo el nombre mas largo
  26.     for (x = 0 ; x < NUM_PERSONAS ; x++ )
  27.         if ( LargoNombre < strlen(persona[x].nombre))
  28.             LargoNombre = strlen(persona[x].nombre);
  29.     //calculo el apellido mas largo
  30.     for (x = 0 ; x < NUM_PERSONAS ; x++ )
  31.         if ( LargoApellido < strlen(persona[x].apellido))
  32.             LargoApellido = strlen(persona[x].apellido);
  33.  
  34.     //IMPRIMO LOS DATOS
  35.     printf("\n\nIMPRIMIENDO DATOS :\n");
  36.  
  37.     //el printf de abajo va hacer una linea del tamaño adecuado para mostrar los datos
  38.     printf("%.*s",LargoApellido+LargoNombre+11,"----------------------------------------");
  39.     printf("\n|  %-*s  |  %-*s  |\n",LargoNombre,"NOMBRE",LargoApellido,"APELLIDO");
  40.     printf("%.*s",LargoApellido+LargoNombre+11,"----------------------------------------");
  41.     for (x = 0 ; x < NUM_PERSONAS ; x++ )
  42.     {
  43.         printf("\n|  %-*s  |  %-*s  |",LargoNombre,persona[x].nombre,LargoApellido,persona[x].apellido);
  44.         printf("\n%.*s",LargoApellido+LargoNombre+11,"----------------------------------------");
  45.     }
  46.     printf("\n\n");
  47.     return 0;
  48. }

Espero te sirva mi pana...

Etiquetas: encapsular, graficos, planilla, recuadros
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:24.