2010-07-12 14 views

Respuesta

13

clrscr() es una función no estándar (ni mencionado en ISO C99 ni en ISO C++-98) define en <conio.h> (que no es en sí compatible con el estándar). Sin embargo, algunos compiladores (como Turbo C/C++) lo admiten como una extensión.

+0

así que lo que usamos en Linux en lugar de clrscr – dom

7

Como todas las cosas en conio.h. clrscr() no tiene nada que ver con el estándar C. conio es una API común de antiguas implementaciones de C basadas en DOS para la consola de nivel inferior - cosas como borrar la pantalla, mover el cursor, leer pulsaciones de teclas individuales, etc. No sé el historia, pero presumiblemente data de antes de que DOS tuviera ANSI.SYS para admitir códigos de escape de terminal estándar para el posicionamiento del cursor, borrar la pantalla, cambiar colores, ...

Si solo está jugando aprendiendo C, no hay daño en usando las funciones conio, pero debe evitar hacer un hábito de #include <conio.h>. En la mayoría de las preguntas que he visto en SO donde se incluyó conio.h, ni siquiera se usaba ... Este tipo de mal hábito conduce a un código insensible y no portátil.

+1

'conio.h' es (aparte de utilizar las funciones de la API nativas directamente) la única manera de conseguir la entrada Unicode fiable y de salida para el Consola de Windows, por lo que todavía juega un papel hoy. – Philipp

+0

¿No es posible configurar la consola io 'codepage' en UTF-8? No es posible establecer la 'página de códigos ANSI' en UTF-8, pero pensé que Windows permitía UTF-8 en otros contextos. –

0

Además, como alternativa a conio.h, puede intentar usar ncurses, que proporciona manejo de terminal, administración de cursor, colores y muchas otras funcionalidades. En particular, proporciona la función clear() con una funcionalidad similar a la función clrscr() que mencionó. Para Windows (que debe ser su caso), existe PDCurses que emplea la misma API. En particular, ncurses cumple con la especificación básica de XSI Curses y es ampliamente adoptado; debe atenerse a ella si importa cualquier grado de portabilidad.

0

DeathStation 9000 y su compilador ZOG C todavía usan clrscr().

cita de http://dialspace.dial.pipex.com/town/green/gfd34/art/

Sería lamentable si alguna más vidas se perdieron simplemente porque algunos programadores sienten una profunda necesidad espiritual de borrar el dispositivo de visualización, y mucho, mucho más, utilizando ZOG C de Comenzar Iniciar (Remote Systems Console Solicitud) función, clrscr().