Compartilhar via


E/S do Console do High-Level

As funções de E/S de alto nível fornecem uma maneira simples de ler um fluxo de caracteres da entrada do console ou gravar um fluxo de caracteres na saída do console. Uma operação de leitura de alto nível obtém caracteres de entrada do buffer de entrada de um console e os armazena em um buffer especificado. Uma operação de gravação de alto nível usa caracteres de um buffer especificado e os grava em um buffer de tela no local atual do cursor, avançando o cursor à medida que cada caractere é gravado.

A E/S de alto nível oferece uma opção entre as funções ReadFile e WriteFile e as funções ReadConsole e WriteConsole . Elas são idênticas, exceto por duas diferenças importantes. As funções de console dão suporte ao uso de caracteres Unicode ou ao conjunto de caracteres ANSI por meio das variantes A e W de cada função; as funções de E/S do arquivo não dão suporte ao Unicode, exceto ao conjunto UTF-8 com a CP_UTF8 constante nas funções SetConsoleCP e SetConsoleOutputCP antes do uso. Além disso, as funções de E/S do arquivo podem ser usadas para acessar arquivos, pipes e dispositivos de comunicação serial; as funções de console só podem ser usadas com identificadores de console. Essa distinção é importante se um aplicativo depende de identificadores padrão que podem ter sido redirecionados.

Ao usar um conjunto de funções de alto nível, um aplicativo pode controlar as cores de texto e plano de fundo usadas para exibir caracteres gravados posteriormente em um buffer de tela com o mecanismo preferencial sendo por meio de sequências de terminal virtual. Um aplicativo também pode usar os modos de console que afetam a E/S de console de alto nível para habilitar ou desabilitar as seguintes propriedades:

  • Eco da entrada do teclado para o buffer de tela ativo
  • Entrada de linha, na qual uma operação de leitura não retorna até que a tecla ENTER seja pressionada
  • Processamento automático de entrada de teclado para manipular retornos de carro, CTRL+C e outros detalhes de entrada
  • Processamento automático de saída para lidar com encapsulamento de linha, retornos de carro, backspaces e outros detalhes de saída

Para obter mais informações, consulte os seguintes tópicos: