Fundamentos de C/C++

Leitura e validação de entrada

Operações de entrada podem falhar e o resultado deve ser verificado.

O que é Leitura e validação de entrada?

Operações de entrada podem falhar e o resultado deve ser verificado.

Leia dados do usuário e rejeite valores inválidos.

Pontos importantes

  • Ative os avisos do compilador e corrija todos.
  • Conheça o tipo e o lifetime de cada valor.
  • Valide entradas e limites de arrays.

Exemplos de código C e C++

C
Executar →
main.c
#include <stdio.h>

int main(void) {
    int age;
    printf("Age: ");
    if (scanf("%d", &age) != 1 || age < 0) {
        puts("Invalid age");
        return 1;
    }
    printf("Next year: %d\n", age + 1);
    return 0;
}
Saída esperada
Age: 20
Next year: 21
C++
Executar →
main.cpp
#include <iostream>

int main() {
    int age;
    std::cout << "Age: ";
    if (!(std::cin >> age) || age < 0) {
        std::cerr << "Invalid age\n";
        return 1;
    }
    std::cout << "Next year: " << age + 1 << '\n';
}
Saída esperada
Age: 20
Next year: 21

Comparação entre C e C++

scanf retorna conversões bem-sucedidas; std::cin entra em fail state quando não extrai o tipo solicitado.

C

C expõe APIs procedurais pequenas e detalhes de representação.

C++

C++ preserva o modelo de baixo nível e adiciona tipos mais seguros.

Exercícios práticos

Execute as duas versões e modifique-as para observar suas garantias.

  • Adicione entradas inválidas e valores limite.
  • Compile com -Wall -Wextra -Wpedantic.
  • Separe declarações e implementação.