Função da biblioteca C - scanf ()
Descrição
A função da biblioteca C int scanf(const char *format, ...) lê a entrada formatada de stdin.
Declaração
A seguir está a declaração da função scanf ().
int scanf(const char *format, ...)
Parâmetros
format - Esta é a string C que contém um ou mais dos seguintes itens -
Caractere de espaço em branco, caractere de não espaço em branco e especificadores de formato . Um especificador de formato será como[=%[*][width][modifiers]type=] como explicado abaixo -
Sr. Não. | Argumento e Descrição |
---|---|
1 | * Este é um asterisco inicial opcional que indica que os dados devem ser lidos do fluxo, mas ignorados, ou seja, não são armazenados no argumento correspondente. |
2 | width Isso especifica o número máximo de caracteres a serem lidos na operação de leitura atual. |
3 | modifiers Especifica um tamanho diferente de int (no caso de d, i e n), unsigned int (no caso de o, u e x) ou float (no caso de e, f e g) para os dados apontados pelo argumento adicional correspondente: h: short int (para d, i e n), ou unsigned short int (para o, u e x) l: long int (para d, i e n), ou unsigned long int (para o, u e x), ou duplo (para e, f e g) L: duplo longo (para e, f e g) |
4 | type Um caractere que especifica o tipo de dados a serem lidos e como se espera que sejam lidos. Veja a próxima tabela. |
especificadores de tipo fscanf
tipo | Entrada de qualificação | Tipo de argumento |
---|---|---|
c | Caractere único: Lê o próximo caractere. Se uma largura diferente de 1 for especificada, a função lê os caracteres de largura e os armazena nos locais sucessivos da matriz passada como argumento. Nenhum caractere nulo é anexado ao final. | Caracteres * |
d | Número inteiro decimal: número opcionalmente precedido por um sinal + ou - | int * |
e, E, f, g, G | Ponto flutuante: número decimal contendo um ponto decimal, opcionalmente precedido por um sinal + ou - e opcionalmente seguido pelo caractere e ou E e um número decimal. Dois exemplos de entradas válidas são -732.103 e 7.12e4 | float * |
o | Octal Inteiro: | int * |
s | Sequência de caracteres. Isso lerá os caracteres subsequentes até que um espaço em branco seja encontrado (os caracteres de espaço em branco são considerados em branco, nova linha e tabulação). | Caracteres * |
você | Inteiro decimal sem sinal. | unsigned int * |
x, X | Número inteiro hexadecimal | int * |
additional arguments- Dependendo da string de formato, a função pode esperar uma sequência de argumentos adicionais, cada um contendo um valor a ser inserido em vez de cada% -tag especificada no parâmetro de formato, se houver. Deve haver o mesmo número desses argumentos que o número de% -tags que esperam um valor.
Valor de retorno
Em caso de sucesso, a função retorna o número de itens lidos com sucesso da lista de argumentos. Se ocorrer um erro de leitura ou se o fim do arquivo for alcançado durante a leitura, o indicador apropriado é definido (feof ou ferror) e, se algum ocorrer antes que qualquer dado possa ser lido com sucesso, EOF é retornado.
Exemplo
O exemplo a seguir mostra o uso da função scanf ().
#include <stdio.h>
int main () {
char str1[20], str2[30];
printf("Enter name: ");
scanf("%s", str1);
printf("Enter your website name: ");
scanf("%s", str2);
printf("Entered Name: %s\n", str1);
printf("Entered Website:%s", str2);
return(0);
}
Vamos compilar e executar o programa acima que produzirá o seguinte resultado no modo interativo -
Enter name: admin
Enter your website name: www.tutorialspoint.com
Entered Name: admin
Entered Website: www.tutorialspoint.com