English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
função da biblioteca C int scanf(const char *formato, ...) leia entrada formatada da entrada padrão stdin.
abaixo está a declaração da função scanf().
int scanf(const char *formato, ...)
o formato do indicador de formato é:
[=%[*][largura][modificadores]type=]
explicação detalhada a seguir:
parâmetro | descrição |
---|---|
* | este é um asterisco opcional, que indica que os dados são lidos do fluxo stream, mas pode ser ignorado, ou seja, não é armazenado nos parâmetros correspondentes. |
width | isto especifica o número máximo de caracteres a serem lidos na operação de leitura atual. |
modificadores | especificar um tamanho diferente do tipo inteiro (para d, i e n), tipo inteiro sem sinal (para o, u e x) ou tipo flutuante (para e, f e g) para os dados apontados pelos parâmetros adicionais: h : inteiro curto (para d, i e n), ou inteiro curto sem sinal (para o, u e x) l : inteiro longo (para d, i e n), ou inteiro longo sem sinal (para o, u e x), ou tipo de precisão dupla (para e, f e g) L : tipo de precisão dupla longa (para e, f e g) |
type | um caractere, que especifica o tipo de dados a ser lido e a maneira de leitura dos dados. Consulte a tabela a seguir para mais detalhes. |
indicador de tipo scanf:
tipo | entrada qualificada | tipo do parâmetro |
---|---|---|
%a、%A | leia um valor flutuante (apenas C99 válido). | float * |
%c | caractere único: lê o próximo caractere. Se for especificado um não 1 largura width, a função lê width caracteres, os quais são armazenados em posições contíguas no array. Não é adicionado caractere nulo no final. | * |
%d | inteiro decimal: o prefixo + ou - é opcional. | int * |
%e、%E、%f、%F、%g、%G | número flutuante: contém um ponto decimal, um sinal opcional + ou -um caractere posterior opcional e ou E, seguido por um número decimal. Dois exemplos válidos -732.103 e 7.12e4 | float * |
%i | leia inteiros decimal, octal e hexadecimal. | int * |
%o | inteiro octal. | int * |
%s | string. Isso lê caracteres consecutivos até encontrar um caractere de espaço (o caractere de espaço pode ser espaço em branco, nova linha e tabulação). | * |
㩵n | inteiro não assinado decimal. | unsigned int * |
%x、%X | Número inteiro hexadecimal. | int * |
%p | Leia um ponteiro . | |
%[] | Escaneie o conjunto de caracteres . | |
%% | Ler % símbolo. |
Se for bem-sucedido, a função retorna o número de correspondências e atribuições bem-sucedidas. Se alcançar o final do arquivo ou ocorrer um erro de leitura, retorna EOF.
O exemplo a seguir demonstra o uso da função scanf().
#include<stdio.h> int main(void) { int a,b,c; printf("Por favor, insira três números:"); scanf("%d%d%d",&a,&b,&c); printf("%d,%d,%d\n",a,b,c); return 0; }
Vamos compilar e executar o programa acima, o que produzirá o seguinte resultado no modo interativo:
Por favor, insira três números:1 2 3 1,2,3
Explicação de análise:
#include<stdio.h> int main(void) { int a,b,c; printf("Por favor, insira três números:"); scanf("%d, %d, %d",&a,&b,&c); printf("%d, %d, %d\n",a,b,c); return 0; }
Vamos compilar e executar o programa acima, o que produzirá o seguinte resultado no modo interativo:
Por favor, insira três números:1, 2, 3 1, 2, 3
Atenção:No momento da entrada, o , deve estar imediatamente após o número, sem espaço entre o número e o ,.
Ao usar %c para entrada, o espaço e o caractere de escape são considerados caracteres válidos.
#include<stdio.h> int main(void) { char a,b,c; printf("Por favor, insira três caracteres:"); scanf("%c%c%c",&a,&b,&c); printf("%c,%c,%c\n", a,b,c); return 0; }
Vamos compilar e executar o programa acima, o que produzirá o seguinte resultado no modo interativo:
$ ./a.out Por favor, insira três caracteres: run r,u,n $ ./a.out Por favor, insira três caracteres: r u n r, ,u
O exemplo a seguir demonstra a recebimento de uma string:
#include <stdio.h> int main() { char str1[20], str2[30]; printf("Por favor, insira o nome de usuário:"); scanf("%s", str1); printf("Por favor, insira o seu site:"); scanf("%s", str2); printf("Nome de usuário informado: %s\n", str1); printf("O site informado: %s", str2); return(0); }
Vamos compilar e executar o programa acima, o que produzirá o seguinte resultado no modo interativo:
Insira Seu Nome de Usuário: admin Insira Seu Site: pt.oldtoolbag.com Nome de Usuário Inserido: admin Site Inserido: pt.oldtoolbag.com