Compartilhar via


Métodos de entrada e saída

Há duas abordagens diferentes para a E/S do console, a escolha da qual depende de quanta flexibilidade e controle um aplicativo precisa. A abordagem de alto nível permite E/S de fluxo de caracteres simples, mas limita o acesso aos buffers de entrada e de tela de um console. A abordagem de baixo nível requer que os desenvolvedores escrevam mais código e escolham entre uma gama maior de funções, mas também oferece mais flexibilidade a um aplicativo.

Observação

A abordagem de baixo nível não é recomendada para desenvolvimento novo e contínuo. Os aplicativos que precisam de funcionalidade das funções de E/S de console de baixo nível são incentivados a usar sequências de terminal virtual e explorar nossa documentação em funções clássicas versus terminal virtual e roteiro do ecossistema.

Um aplicativo pode usar as funções de E/S de arquivo, ReadFile e WriteFile e as funções de console, ReadConsole e WriteConsole, para E/S de alto nível que fornece acesso indireto aos buffers de entrada e tela de um console. As funções de entrada de alto nível filtram e processam os dados no buffer de entrada de um console para retornar a entrada como um fluxo de caracteres, descartando o mouse e a entrada de redimensionamento de buffer. Da mesma forma, as funções de saída de alto nível gravam um fluxo de caracteres que são exibidos no local atual do cursor em um buffer de tela. Um aplicativo controla a maneira como essas funções funcionam definindo os modos de E/S de um console.

As funções de E/S de baixo nível fornecem acesso direto aos buffers de entrada e tela de um console, permitindo que um aplicativo acesse eventos de entrada de redimensionamento de mouse e buffer e informações estendidas para eventos de teclado. As funções de saída de baixo nível permitem que um aplicativo leia ou escreva em um número especificado de células de caracteres consecutivas em um buffer de tela ou leia ou escreva em blocos retangulares de células de caractere em um local especificado em um buffer de tela. Os modos de entrada de um console afetam a entrada de baixo nível, permitindo que o aplicativo determine se os eventos de redimensionamento de mouse e buffer são colocados no buffer de entrada. Os modos de saída de um console não têm efeito na saída de baixo nível.

Os métodos de E/S de alto nível e de baixo nível não são mutuamente exclusivos e um aplicativo pode usar qualquer combinação dessas funções. Normalmente, no entanto, um aplicativo usa uma abordagem ou outra exclusivamente e recomendamos focar em um paradigma específico para resultados ideais.

Dica

O aplicativo de pesquisa prospectiva ideal se concentrará nos métodos de alto nível e aumentará ainda mais as necessidades com sequências de terminal virtual por meio dos métodos de E/S de alto nível, quando necessário, evitando totalmente o uso de funções de E/S de baixo nível.

Os tópicos a seguir descrevem os modos de console e as funções de E/S de alto nível e de baixo nível.