La saisie sécurisée en C++

Par

  • Difficulté

    Facile

  • Note

Thématiques

C++, Programmation

Mis à jour le jeudi 10 janvier 2013


Quand on débute le C++, on découvre avec émerveillement la simplicité des fonctions d'entrée/sortie par rapport au C, plus besoin de spécifier le type de la variable passée en paramètre, plus besoin de mettre des "&" de partout.

Prenons par exemple le code suivant, que l'on rencontre très couramment :

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
    unsigned short int age;

    cout << "Entrez votre age : ";
    cin >> age;

    char nom[15];

    cout << "Entrez votre nom : ";
    cin >> nom;

    cout << endl << "Bonjour " << nom << ", vous avez " << age << " ans." << endl;

    return EXIT_SUCCESS;
}

Les petits malins auront vite fait de remarquer qu'il y a quelques failles dans l'utilisation de ces méthodes. En effet, il suffit d'entrer tout sauf un nombre pour que le programme ne fonctionne plus du tout comme prévu.

Entrez votre age : n'importe
Entrez votre nom : 
Bonjour ╝[¼t@'@, vous avez 32509 ans

Et là nous nous retrouvons face à non pas un, mais deux problèmes bien ennuyeux, nous n'avons ni l'âge de l'utilisateur, ni son nom :(.

A ce stade, vous avez trois possibilités :

  1. Arrêter de programmer.

  2. Arrêter d'interagir avec l'utilisateur (ce qui limiterait un peu vos programmes).

  3. Utiliser la saisie sécurisée afin que ce genre de désagréments ne puisse pas survenir.

Fatigué(e) de lire sur un écran ? Découvrez ce cours en livre.


J'ai une question ou une remarque

L'auteur