E/S do console de alto nível
As funções de E/S de alto nível oferecem uma forma simples de ler um fluxo de caracteres da entrada do console ou de gravar um fluxo de caracteres na saída do console. Uma operação de leitura de alto nível obtém caracteres de entrada de um buffer de entrada do console e os armazena em um buffer especificado. Uma operação de gravação de alto nível recebe os 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 a 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 do 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 de arquivo não oferecem suporte a Unicode, exceto para UTF-8 definido com a constante CP_UTF8
nas funções SetConsoleCP e SetConsoleOutputCP antes do uso. Além disso, as funções de E/S de arquivo podem ser usadas para acessar arquivos, pipes e dispositivos de comunicação serial; as funções do console podem ser usadas somente com identificadores do console. Essa distinção é importante se um aplicativo depender de identificadores padrão que podem ter sido redirecionados.
Ao usar qualquer conjunto de funções de alto nível, aplicativos podem controlar o texto e as cores da tela de fundo usadas para exibir caracteres gravados posteriormente em um buffer de tela com o mecanismo preferido por meio de sequências de terminais virtuais. Aplicativos também podem usar os modos de console que afetam a E/S do console de alto nível para habilitar ou desabilitar as propriedades a seguir:
- 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 quebra automática de linha, retornos de carro, backspaces e outros detalhes de saída
Para Mais informações, consulte os seguintes tópicos: