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