Partilhar via


E/S do console 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 pega 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 escolha entre as funções ReadFile e WriteFile e as funções ReadConsole e WriteConsole . São idênticos, salvo duas diferenças importantes. As funções do console suportam o uso de caracteres Unicode ou o conjunto de caracteres ANSI através das variantes A e W de cada função; as funções de E/S de arquivo não suportam Unicode, exceto para UTF-8 definido com a CP_UTF8 constante nas funções SetConsoleCP e SetConsoleOutputCP antes do uso. Além disso, as funções de E/S de arquivos podem ser usadas para acessar arquivos, tubos e dispositivos de comunicação serial; As funções do console só podem ser usadas com alças do console. Essa distinção é importante se um aplicativo depende de identificadores padrão que podem ter sido redirecionados.

Ao usar qualquer conjunto de funções de alto nível, um aplicativo pode controlar o texto e as cores de fundo usadas para exibir caracteres subsequentemente gravados em um buffer de tela, com o mecanismo preferido sendo através de sequências de terminais virtuais. 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 da entrada do teclado para lidar com 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: