Como usar o fluxo de entrada em C Programming

As funções de entrada / saída básico em C não são interativos, o que significa que eles não sentar e esperar para que você digite o texto no teclado. Essa é a maneira que você pretende usar um programa de computador: Você tipo de entrada, eo programa reage diretamente. Mas a entrada padrão em C não é personagem baseado, é fluxo de base.

Com fluxo baseada de entrada, um programa olha para a entrada como se fosse derramado de um jarro. Todos os personagens, incluindo Enter, marchar em um após o outro. Só depois de um determinado pedaço de texto é recebida, ou a entrada pára completamente, não o fim stream. Este conceito pode ser frustrante para qualquer início C programador.

Noções básicas de entrada de fluxo

Considere o código ilustrado na frustrado por Input Stream. Afigura-se que o código lê a entrada até que o período é encontrado. Nesse ponto, você diria que a entrada iria parar, mas isso não está antecipando a entrada de fluxo.

Frustrado por ENTRADA STREAM

#include int main () {char i-do {i = getchar () - putchar (i) -} while (i =! '.') - putchar ( ' n') - retorno (0) -}

Exercício 1: Digite o código-fonte do malogrado pela entrada Corrente em um editor. Criar e executar a experimentar o programa. Digite um monte de texto e um período para ver o que acontece.

Veja como ele funciona:

Isto é um teste. isto'é apenas um teste.Isto é um teste.

De um modo geral, o programa não parar de entrada depois que você digite um período. A primeira linha no exemplo anterior é o fluxo, como uma mangueira de incêndio personagens atirando para o programa. O programa se comporta corretamente, o processamento do córrego e travar a sua exibição após o período for encontrado. O Enter serve-chave como uma ruptura na corrente, que o programa usa para digerir entrada até esse ponto.

Como lidar com a entrada de fluxo

Apesar orientação fluxo da linguagem C, formas existem para criar mais-ou-menos programas interativos. Você simplesmente tem que abraçar a entrada de fluxo e lidar com ele adequadamente.

O código-fonte na pesca de Characters in the Stream deve ser bastante simples para você. A função getchar () obtém dois personagens e, em seguida, os personagens são exibidas na Linha 11.

PESCA para caracteres no fluxo

#include int main () {char primeira, segunda-printf ( "Digite sua primeira inicial:") -primeiro = getchar () - printf ( "Digite sua segunda inicial:") -Segundo = getchar () - printf ( "Your iniciais são '% c' e '% c' n ", primeiro, segundo) -Retornar (0) -}

exercício 2: Digite o código fonte a partir de pesca para caracteres na Corrente em seu editor. Linha 11 é dividido de modo que não wrap você não tem que dividir a linha em seu editor. Criar e executar usando suas iniciais como entrada.

Aqui está a saída:

Escreva seu primeiro inicial: DEscreva seu segundo inicial: Suas iniciais são 'D' e ''

Ele nunca deu uma chance para introduzir a sua segunda inicial. O fluxo incluiu a pressionar a tecla Enter, que o programa aceite como entrada para a função de segundo getchar (). Esse personagem, n, é exibido na saída entre aspas simples.

Como você executar o programa? Simples: Escreva ambas as iniciais na primeira linha:

Escreva seu primeiro inicial: DGEscreva seu segundo inicial: Suas iniciais são 'D' e 'G'

Claro, isso não é o que o código pede. Assim como você corrigir isso? Você pode pensar em uma solução usando seus programadores atuais 'saco o' truques?

Não desista!

A solução é criar uma função que retorna o primeiro caractere no fluxo e, em seguida, engole o resto dos personagens até o n é encontrado. Essa função se parece com uma função de entrada com apenas um caractere, Getch ():

A função de entrada de caractere simples, GETCH ()

getch char (void) {char ch-ch = getchar () - enquanto (getchar () = ' n'!) - retorno (ch) -}

Para quebrar o seu cérebro em torno de entrada de fluxo, considere que o loop while em uma função de entrada com apenas um caractere, Getch ()estende-se por todo o texto no fluxo até que uma nova linha é encontrado. Em seguida, o primeiro caractere no fluxo, agarrou na Linha 5, é retornado da função.

Exercício 3: Modificar o código fonte do Exercício 2, de modo que a função getch () ilustrado em uma função de entrada com apenas um caractere, Getch ()é usado para reunir informações. Criar e executar para garantir que a saída é o que o usuário iria antecipar.

Se você quer que os programas realmente interativos, você usar uma biblioteca em linguagem C que oferece funções interactivas. A biblioteca NCurses é grande porque tem as funções de entrada e saída que permitem criar programas de texto em tela cheia que são imediatamente interativo.

menu