La saisie sécurisée en C++

Difficulté Facile
Note
Thématiques
Mis à jour le mardi 19 novembre 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.


L'auteur