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 ansEt 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 :
Arrêter de programmer.
Arrêter d'interagir avec l'utilisateur (ce qui limiterait un peu vos programmes).
Utiliser la saisie sécurisée afin que ce genre de désagréments ne puisse pas survenir.