Compartir a través de


Métodos de entrada y salida

Hay dos enfoques diferentes para la E/S de la consola, la elección de la cual depende de la flexibilidad y control que necesita una aplicación. El enfoque de alto nivel permite la E/S de secuencia de caracteres simple, pero limita el acceso a los búferes de entrada y pantalla de una 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 a una aplicación más flexibilidad.

Nota:

No se recomienda el enfoque de bajo nivel para el desarrollo nuevo y continuo. Se recomienda a las aplicaciones que necesitan funcionalidad de las funciones de E/S de consola de bajo nivel para usar secuencias de terminal virtual y explorar nuestra documentación sobre las funciones clásicas frente al terminal virtual y la hoja de ruta del ecosistema.

Una aplicación puede usar las funciones de E/S de archivo, ReadFile y WriteFile, y las funciones de consola, ReadConsole y WriteConsole, para E/S de alto nivel que proporciona acceso indirecto a los búferes de entrada y pantalla de una consola. Las funciones de entrada de alto nivel filtran y procesan los datos en el búfer de entrada de una consola para devolver la entrada como un flujo de caracteres, descartando la entrada del mouse y el 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. Una aplicación controla la forma en que funcionan estas funciones estableciendo los modos de E/S de una consola.

Las funciones de E/S de bajo nivel proporcionan acceso directo a los búferes de entrada y pantalla de una consola, lo que permite que una aplicación acceda a eventos de entrada de búfer y mouse y cambio de tamaño de búfer e información extendida para 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 consecutivos en un búfer de pantalla, o leer o escribir en bloques rectangulares de celdas de caracteres en una ubicación especificada en un búfer de pantalla. Los modos de entrada de una consola afectan a la entrada de bajo nivel al permitir que la aplicación determine si los eventos de cambio de tamaño del mouse y búfer se colocan en el búfer de entrada. Los modos de salida de una consola no tienen ningún efecto en la salida de bajo nivel.

Los métodos de E/S de alto nivel y bajo no son mutuamente excluyentes y una aplicación puede usar cualquier combinación de estas funciones. Sin embargo, normalmente, una aplicación usa un enfoque o el otro exclusivamente y se recomienda centrarse en un paradigma determinado para obtener resultados óptimos.

Sugerencia

La aplicación ideal orientada al futuro se centrará en los métodos de alto nivel y aumentará las necesidades adicionales con secuencias de terminal virtual a través de los métodos de E/S de alto nivel cuando sea necesario evitando el uso de funciones de E/S de bajo nivel por completo.

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