0Pricing
C Academy · Aula

scanf e entrada

Leia a entrada do usuário.

scanf e entrada é uma aula grátis de C Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C Academy inclui 4 aulas no total.

O que a leitura formatada faz

scanf lê a entrada formatada digitada pelo usuário. Ela usa os mesmos especificadores que printf.

#include <stdio.h>
int main(void) {
    int x = 0;
    /* scanf("%d", &x); */
    x = 5;
    printf("x = %d\n", x);
    return 0;
}

O operador de obtenção de endereço

scanf precisa do endereço de uma variável para poder armazenar o valor nesse local. Por isso, escrevemos &x.

#include <stdio.h>
int main(void) {
    int x = 42;
    int *p = &x;
    printf("value via address = %d\n", *p);
    return 0;
}

Lendo um inteiro

Para ler um inteiro, passe %d e o endereço de um int.

#include <stdio.h>
int main(void) {
    int n;
    /* scanf("%d", &n); */
    n = 7;
    printf("You entered %d\n", n);
    return 0;
}

Lendo um número real

Para ler um float, use %f; para um double, use %lf.

#include <stdio.h>
int main(void) {
    double d;
    /* scanf("%lf", &d); */
    d = 3.14;
    printf("d = %.2f\n", d);
    return 0;
}

Lendo vários valores

Uma chamada de scanf pode ler vários valores separados por espaços em branco.

#include <stdio.h>
int main(void) {
    int a, b;
    /* scanf("%d %d", &a, &b); */
    a = 3; b = 4;
    printf("sum = %d\n", a + b);
    return 0;
}

Lendo um caractere

Use %c para ler um caractere. Atenção: ele também lê espaços e quebras de linha.

#include <stdio.h>
int main(void) {
    char c;
    /* scanf(" %c", &c); */
    c = 'X';
    printf("char = %c\n", c);
    return 0;
}

Lendo uma palavra

%s lê uma palavra delimitada por espaços em branco para um vetor de caracteres. Não é necessário usar &, pois o nome de um vetor já é um endereço.

#include <stdio.h>
int main(void) {
    char word[20];
    /* scanf("%s", word); */
    word[0] = 'H'; word[1] = 'i'; word[2] = 0;
    printf("word = %s\n", word);
    return 0;
}

Valor de retorno da leitura formatada

scanf retorna quantos itens foram lidos com sucesso. Verifique esse valor para detectar uma entrada inválida.

#include <stdio.h>
int main(void) {
    int n = 5;
    int read = 1; /* pretend scanf returned 1 */
    if (read == 1)
        printf("got %d\n", n);
    return 0;
}

Ignorando espaços iniciais

Os especificadores numéricos ignoram automaticamente os espaços em branco iniciais, mas %c não. Um espaço antes de %c resolve esse problema.

#include <stdio.h>
int main(void) {
    char c = 'Y';
    printf("Reading with \" %%c\" skips spaces\n");
    printf("c = %c\n", c);
    return 0;
}

Validando a entrada

Verifique sempre o valor de retorno antes de confiar nos dados.

#include <stdio.h>
int main(void) {
    int value = 10;
    int ok = 1;
    if (ok)
        printf("valid: %d\n", value);
    else
        printf("invalid input\n");
    return 0;
}

Reunindo tudo

Um programa típico solicita uma entrada, lê e depois usa o valor.

#include <stdio.h>
int main(void) {
    int age;
    printf("Enter age: ");
    /* scanf("%d", &age); */
    age = 20;
    printf("Next year you will be %d\n", age + 1);
    return 0;
}

Verificação rápida

Teste sua compreensão de scanf.

Recapitulação: scanf e entrada

Você aprendeu a ler a entrada do usuário.

  • scanf usa especificadores no estilo de printf
  • Passe &var para que ele saiba onde armazenar o valor
  • Use %lf para double e %s para palavras
  • Verifique o valor de retorno para validar a entrada
  • Coloque um espaço antes de %c para ignorar espaços em branco

Perguntas Frequentes

A aula “scanf e entrada” é grátis?

Sim — o texto completo de “scanf e entrada” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C Academy, atualize para CoddyKit PRO. O curso de C Academy inclui 4 aulas no total.

O que vou aprender em “scanf e entrada”?

Leia a entrada do usuário. Você pratica C Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C Academy?

Nenhuma experiência prévia é necessária. C Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “scanf e entrada”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C Academy?

Sim. Cada aula de C Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Especificadores de formato de printf
  2. scanf e entrada
  3. Largura, precisão e flags
  4. Armadilhas comuns de E/S
← Voltar para C Academy