Share via


Métodos de entrada y salida

La E/S de consola se puede abordar con dos enfoques diferentes, dependiendo de la flexibilidad y el control que necesite la aplicación. El enfoque de alto nivel permite la E/S de secuencias de caracteres simples, pero limita el acceso a los búferes de entrada y pantalla de la consola. El enfoque de bajo nivel requiere que los desarrolladores escriban más código y elijan entre una mayor variedad de funciones, pero también proporciona más flexibilidad a la aplicación.

Nota:

No se recomienda el enfoque de bajo nivel para las acciones nuevas y en curso de desarrollo. Si las aplicaciones necesitan la funcionalidad que ofrecen las funciones de E/S de consola de bajo nivel, se recomienda usar secuencias de terminal virtual, así como consultar nuestra documentación sobre funciones clásicas frente a terminal virtual y nuestro plan de desarrollo del ecosistema.

Una aplicación puede usar las funciones de E/S de archivos (ReadFile y WriteFile) y las funciones de consola (ReadConsole y WriteConsole) para utilizar la E/S de alto nivel que proporciona acceso indirecto a los búferes de entrada y pantalla de la consola. Las funciones de entrada de alto nivel filtran y procesan los datos en el búfer de entrada de la consola para devolver la entrada como un flujo de caracteres. Se descartan las entradas de mouse y cambio de tamaño del búfer. Del mismo modo, las funciones de salida de alto nivel escriben una secuencia de caracteres que se muestran en la ubicación actual del cursor en un búfer de pantalla. Para controlar cómo operan estas funciones, la aplicación establece los modos de E/S de consola.

Las funciones de E/S de bajo nivel proporcionan acceso directo a los búferes de entrada y pantalla de la consola, lo que permite a la aplicación acceder a eventos de entrada de mouse y cambio de tamaño del búfer, así como a información ampliada sobre los eventos de teclado. Las funciones de salida de bajo nivel permiten a una aplicación leer o escribir en un número especificado de celdas de caracteres consecutivas en un búfer de pantalla, o bien leer o escribir en bloques rectangulares de celdas de caracteres en una ubicación especificada de este búfer. Los modos de entrada de una consola afectan a la entrada de bajo nivel, ya que permiten a la aplicación determinar si se colocan en el búfer de entrada los eventos de mouse y cambio de tamaño del búfer. Los modos de salida de una consola no afectan de ningún modo a la salida de bajo nivel.

Los métodos de E/S de alto y bajo nivel no son mutuamente excluyentes, y una aplicación puede utilizar cualquier combinación de estas funciones. Sin embargo, las aplicaciones suelen utilizar un enfoque u otro. Se recomienda centrarse en un paradigma concreto para obtener resultados óptimos.

Sugerencia

La aplicación ideal de cara al futuro se centrará en los métodos de alto nivel, tendrá más necesidades relacionadas con secuencias de terminal virtual, que abordará con métodos de E/S de alto nivel cuando sea preciso, y evitará por completo el uso de funciones de E/S de bajo nivel.

En los temas siguientes se describen los modos de consola y las funciones de E/S de alto y bajo nivel.