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.