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.