/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Imprimir linea dinamica en C

 
      Índice del Foro elrincondelc.com -> C/C++ en General
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
christopherccg



Registrado: 15 Nov 2011
Mensajes: 3
Ubicación: México

MensajePublicado: 15/11/2011 7:31 pm
Título: Imprimir linea dinamica en C

¿Como puedo imprimir una línea dinámica con printf()?

Me explico, si la terminal mide 80 caracteres que muestre una línea de
80 caracteres, si la terminal mide 120 caracteres que muestre una línea de 120 caracteres, si mide 40 que muestre una linea de 40 caracteres.

----------------------------------------------------------------------------------------
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 6586
Ubicación: Mexico

MensajePublicado: 16/11/2011 4:03 am
Título:

Primero necesitas obtener las dimensiones en caracteres, algo que no es posible con C estándar. Tal vez lo sea utilizando extensiones pero primero debes indicar el compilador y SO que estas utilizando.

Un saludo
_________________
Memory never recaptures reality. Memory reconstructs. All reconstructions change the original, becoming external frames of reference that inevitably fall short.
--
Mentat Handbook
Volver arriba
christopherccg



Registrado: 15 Nov 2011
Mensajes: 3
Ubicación: México

MensajePublicado: 16/11/2011 5:32 pm
Título:

Tenía la idea porque lo había visto en un programa, el programa estaba escrito en un script de shell, por lo tanto con $COLUMS sacaba el tamaño de la consola.

Estoy en GNU/Linux y solamente es curiosidad para saber si se podría hacer.

Muchas gracias por tu respuesta. Very Happy.
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 6586
Ubicación: Mexico

MensajePublicado: 18/11/2011 8:33 am
Título:

Utilizando Cygwin (un emulador de *Unix para MS Windows) el siguiente ejemplo funciona correctamente y reporta el tamaño en caracteres de la consola:
Código:
#include <stdio.h>

#include <sys/ioctl.h>

int main(void)
{
   struct winsize w;
   ioctl (0, TIOCGWINSZ, &w);
   
   printf("lines %d\n", w.ws_row);
   printf("columns %d\n", w.ws_col);
   
   return 0;
}


No es un ejemplo mio sino cortesía de la pagina Getting terminal width in C?

Un saludo
_________________
Memory never recaptures reality. Memory reconstructs. All reconstructions change the original, becoming external frames of reference that inevitably fall short.
--
Mentat Handbook
Volver arriba
      Índice del Foro elrincondelc.com -> C/C++ en General
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com