Bases de C/C++

Lecture et validation des entrées

Une opération d’entrée peut échouer ; son résultat doit toujours être vérifié.

Qu’est-ce que Lecture et validation des entrées ?

Une opération d’entrée peut échouer ; son résultat doit toujours être vérifié.

Lisez une entrée utilisateur et refusez les valeurs invalides.

Points importants

  • Activez les avertissements du compilateur et corrigez-les.
  • Connaissez le type et la durée de vie de chaque valeur.
  • Validez les entrées et les limites des tableaux.

Exemples de code C et C++

C
Exécuter →
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;
}
Résultat attendu
Age: 20
Next year: 21
C++
Exécuter →
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';
}
Résultat attendu
Age: 20
Next year: 21

Comparaison entre C et C++

scanf renvoie le nombre de conversions réussies ; std::cin passe en état d’échec si le type demandé ne peut pas être lu.

C

C expose de petites API procédurales et les détails de représentation.

C++

C++ conserve le modèle bas niveau et ajoute des types et abstractions plus sûrs.

Exercices pratiques

Exécutez les deux versions puis modifiez-les pour observer leurs garanties.

  • Ajoutez des entrées invalides et limites.
  • Compilez avec -Wall -Wextra -Wpedantic.
  • Séparez déclarations et implémentations.