Aguarde a entrada do usuário: linguagem C

Wait User Input C Language



Na linguagem de programação C, existem algumas funções de entrada. Usando essas funções, podemos esperar pela entrada do usuário. Neste tutorial, vamos discutir as funções de entrada em detalhes.

String de formato

A string de formato é o formato dos dados inseridos. Este formato começa com o sinal% e seguido pelo especificador de formato. O especificador de formato é um caractere específico usado para o tipo de dado que está sendo lido.







arg1, arg2, arg3… são os endereços das variáveis ​​onde os dados inseridos serão armazenados.



Função scanf ()

Sintaxe: int scanf (formato de string, arg1, arg2, arg3 ...)



Alguns dos especificadores usados ​​com frequência são os seguintes:





  • d - Usado para valores inteiros.
  • f - Usado para número flutuante.
  • c - Usado para valor de caractere único.
  • s - Usado para cordas.

Usando único scanf () função, uma ou várias entradas podem ser obtidas do usuário.

o scanf () A função obtém a entrada da entrada padrão (teclado) e armazena o valor em uma variável. A função espera pela entrada do usuário até que o usuário pressione a tecla Enter. O valor inserido está sendo armazenado em um buffer. Quando a tecla Enter está sendo pressionada, scanf () função começa a ler.



Exemplo 1: Entrada Inteira

//Example1.c
#incluir

inta Principal(){

inteu;
printf ('Digite o primeiro valor inteiro:');
scanf ('% d', &eu);
printf ('Você entrou:% d n',eu);

printf ('Digite o segundo valor inteiro:');
scanf ('% d', &eu);
printf ('Você entrou:% d n',eu);

Retorna 0;
}

Em Exemplo1.c, vimos isso quando inserimos valores inteiros e pressionamos a tecla Enter. o scanf () função pega o valor e o armazena na variável. Se inserirmos os valores separados por espaço, a função retorna quando o espaço é encontrado, mas os valores após o espaço permanecem no buffer de entrada. É por isso que o segundo scanf () A função não irá esperar pela entrada do usuário, em vez disso, ela obtém a entrada do buffer.

Exemplo 2: entrada de um único caractere

//Example2.c
#incluir

inta Principal(){

Caracteresc;
printf ('Digite um caractere:');
scanf ('% c', &c);
printf ('Você inseriu:% c n',c);

Retorna 0;
}

Em Example2.c, vimos que quando usamos % c especificador, o scanf () função leva apenas um caractere, mesmo se tivermos inserido mais de um caractere.

Exemplo 3: entrada de um único caractere (várias vezes)

//Example3.c
#incluir

inta Principal(){

Caracteresc;
printf ('Digite o primeiro caractere:');
scanf ('% c', &c);
printf ('Você inseriu:% c n',c);

printf ('Digite o segundo caractere:');
scanf ('% c', &c);
printf ('Você inseriu:% c n',c);

Retorna 0;
}

Exemplo 4 :

//Example4.c
#incluir

inta Principal(){

Caracteresc;
printf ('Digite o primeiro caractere:');
scanf ('% c', &c);
printf ('Você inseriu:% c n',c);

printf ('Digite o segundo caractere:');
scanf ('% c', &c);
printf ('Você inseriu:% c n',c);

Retorna 0;
}

Exemplo 5: entrada de string

//Example5.c
#incluir

inta Principal(){

Caracteresnome[quinze];
printf ('Digite seu nome:');
scanf ('% s',nome);
printf ('Você entrou:% s n',nome);

Retorna 0;
}

Função getc ()

Sintaxe: int getc (FILE * stream)

getc () função é usada para ler um caractere do ponteiro FILE (fluxo). Para ler no teclado, temos que usar Stdin . Esta função retorna um valor inteiro de caractere lido.

Exemplo 6:

//Example6.c
#incluir

inta Principal(){

Caracteresc;
printf ('Digite o primeiro caractere:');
enquanto((c= getc (Stdin))==' n');
printf ('Você inseriu:% c n',c);

enquanto( getc (Stdin)! =' n');

printf ('Digite o segundo caractere:');
enquanto((c= getc (Stdin))==' n');
printf ('Você inseriu:% c n',c);

Retorna 0;
}

Função getchar ()

Sintaxe: int getchar (void)

getchar () função é a mesma que getc () . A única diferença é que getc () função pode ler de qualquer fluxo de entrada, enquanto getchar () a função lê apenas a partir da entrada padrão.

Exemplo 7:

//Example7.c
#incluir

inta Principal(){

Caracteresc;
printf ('Digite o primeiro caractere:');
enquanto((c= getchar ())==' n');
printf ('Você inseriu:% c n',c);

enquanto( getchar ()! =' n');

printf ('Digite o segundo caractere:');
enquanto((c= getchar ())==' n');
printf ('Você inseriu:% c n',c);

Retorna 0;
}

Conclusão

Neste artigo, vimos como as funções de entrada são usadas na linguagem C. Todas essas funções são retiradas do buffer de entrada e quando usamos essas funções várias vezes, temos que limpar o buffer. Caso contrário, as funções não irão esperar pela entrada do usuário e obter a entrada do buffer.