Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: <<<-Basura->>> en 1 Mayo 2011, 09:00 am



Título: conio.h scrclr
Publicado por: <<<-Basura->>> en 1 Mayo 2011, 09:00 am
estuve leyendo de que usar la libreria conio no era etico o era simplemente una basura usarla...
estaba buscando una forma para limpiar la consola que no fuera usando el tipico system("pausa"); entonces di con la libreria conio.h y me decia que usara scrclr();
queria saber si existen difrentes formas para limpiar la consola


Título: Re: conio.h scrclr
Publicado por: Slava_TZD en 1 Mayo 2011, 09:26 am
Existen ciertamente otras maneras de limpiar la consola, si estas en Windows puedes usar la API por ej, pero ninguna que yo sepa hace exactamente lo mismo que la funcion de borland y que yo sepa (no te fies mucho de mi ;)) no existe una funcion estandar que reemplace la de borland, lo que si puedes hacer es usar la funcion system() (que si es estandar) y utilizar el comando del OS en el que estes trabajando.


Título: Re: conio.h scrclr
Publicado por: lluk en 1 Mayo 2011, 11:16 am
para empezar: system("pause") no limpia la consola solo la detiene, para limpiar la consola tendrías que usar system("CLS") pero solo te va a servir para windows, en la librería conio.h hay la función clrscr() y que yo sepa no existen más formas de hacer-lo (en windows), no usaras linux verdad?


Título: Re: conio.h scrclr
Publicado por: leogtz en 1 Mayo 2011, 18:17 pm
Con la API de Windows puedes, con conio también, con system también, y si quieres hacer tu programa multiplataforma puedes usar ncurses/pdcurses.


Título: Re: conio.h scrclr
Publicado por: <<<-Basura->>> en 1 Mayo 2011, 22:27 pm
Disculpen mi error es system("cls"); entonces como puedo limpiar la patalla con una funcion que sea multiplataforma


Título: Re: conio.h scrclr
Publicado por: Garfield07 en 1 Mayo 2011, 23:03 pm
Podrías usar IFDEFs. Si es Win32 ejecuta "cls" y si es linux ejecuta "clear". Mientras... ncurses sería una buena opción.
Sagrini


Título: Re: conio.h scrclr
Publicado por: leogtz en 2 Mayo 2011, 00:19 am
Disculpen mi error es system("cls"); entonces como puedo limpiar la patalla con una funcion que sea multiplataforma

Lee las respuestas primero.


Título: Re: conio.h scrclr
Publicado por: <<<-Basura->>> en 2 Mayo 2011, 10:12 am
 No Quiero utilizar system!! ni clrscr porque suspuestamente dicen que si utilizo system ato mi programa a que no sea multiplataforma y si utilizo clrscr no porque seria una tontera utilizar la libreria conio.h


Título: Re: conio.h scrclr
Publicado por: Slava_TZD en 2 Mayo 2011, 10:33 am
No Quiero utilizar system!! ni clrscr porque suspuestamente dicen que si utilizo system ato mi programa a que no sea multiplataforma y si utilizo clrscr no porque seria una tontera utilizar la libreria conio.h

¿Quien ha dicho que usar conio.h es una tonteria? Otra solución es un define.

Código:
#ifdef MW
    code
#else
    code
#endif


Título: Re: conio.h scrclr
Publicado por: <<<-Basura->>> en 3 Mayo 2011, 08:13 am
mmm no entendi lo de define... pero en las reglas del foto dice , he puesto vairas veces esa libreria en distintos programas y cuando surge una dura y la posteo aqui se quejan porque uso conio..
Eplicame eso de define


Título: Re: conio.h scrclr
Publicado por: Slava_TZD en 3 Mayo 2011, 08:31 am
Usa el buscador para la próxima duda que tengas...esto ya se respondió una vez.

Código
  1. #include <stdio.h>
  2. int main()
  3.  
  4. {
  5.  printf("esto se borrará");
  6.  getchar()
  7. #ifdef _WIN32
  8.  system("CLS");
  9. #else
  10.  system("clear");
  11. #endif
  12.  return 0;
  13. }

o puedes hacer una cosa así si no quieres tocar el procesador en medio del programa:

Código:
#include <stdio.h>
#ifdef _WIN32
 #define limpiar() system("CLS");
#else
  #define limpiar() system("clear");
#endif

int main()

{
  printf("esto se borrará")
  getchar()
  limpiar()
  return 0;
}
_WIN32 depende del compilador...consulta la documentación del que uses.