jueves, 9 de abril de 2015

conio.h No es necesario(y otras equivalencias mas).



 

Después de tanto batallar una y otra vez debido a que no podía correr determinado código, después darme cuenta que era por la falta de una librería y ponerme a buscar algún equivalente me decidi a recopilar todo lo que piense que sea útil.


Como por ejemplo el desuso de la librería conio.h, esta librería contiene los prototipos de las funciones, macros, y constantes para preparar y manipular la consola en modo texto en el entorno de MS-DOS, dicho más simple esta nos permite dar un "mejor formato" al texto en la terminal de MS-DOS, ya sea dándole color al texto o color al fondo, por mencionar un ejemplo simple.

Algunos de los comandos más conocidos son:

http://img.freepik.com/free-photo/cpp-file-format-symbol_318-45356.png?size=318&ext=png
  • getch();
  • clrscr();
  • gotoxy();
  • textcolor();
  • Textbackground(); 
Aun así nosotros podemos sustituir estas funciones de la librería conio.h con otras funciones estándares.

Para sustituir clrscr(), solo necesitamos escribir system("cls"); la cual está en iostream (es sin .h, se definiría así: #include iostream).

Gotoxy() es algo vago de usar pudiendo utilizar n (espacio hacia abajo) y t (espacio hacia la derecha) dentro de un printf();

Para sustituir getch(), solo necesitamos: cin.get(); la cual está en stdio.h. Si no funciona entonces tendremos que ponerla dos veces: cin.get();cin.get(); También podemos utilizar getchar(); que se encuentra en stdio.h 

fuente:
http://www.taringa.net/posts/ciencia-educacion/16155639/Por-que-NO-usar-conio-h-C-C.html

1 comentario:

  1. Hola, estoy contigo, conio.h no es necesario pero, ¿cómo vuelves hacia atrás utilizando n y t como dice este post?
    Lo de cin.get() sólo es para c++ y además tiene echo, es decir, ves las letras que pulsas y necesitas pulsar enter al final.
    system("cls") necesita hacer una ejecución a un comando externo, lo que gasta CPU y memoria.

    De todas formas, hay bilbiotecas más nuevas y mejores para hacerlo... es más, puede que utilizando códigos ANSI directamente en algunos sistemas operativos (en Windows debemos utilizar la API de Windows y es un poco incómodo, vamos, son más líneas para algunas cosas).

    Te dejo un port de conio.h para Linux con agunas de las funciones más interesantes de la biblioteca: http://totaki.com/poesiabinaria/2009/05/colores-y-posicionamiento-en-terminales-linux-como-conioh-en-dos/

    ResponderEliminar