Chaînes d'entrée utilisateur C++
Chaînes d'entrée utilisateur
Il est possible d'utiliser l'opérateur d'extraction >>
sur cin
pour afficher une chaîne saisie par un utilisateur :
Exemple
string firstName;
cout << "Type your first name: ";
cin >>
firstName;
// get user input from the keyboard
cout << "Your name is: " <<
firstName;
// Type your first name: John
// Your name is: John
Cependant, cin
considère un espace (espace blanc, tabulation, etc.) comme un caractère de fin, ce qui signifie qu'il ne peut afficher qu'un seul mot (même si vous tapez plusieurs mots) :
Exemple
string fullName;
cout << "Type your full name: ";
cin >>
fullName;
cout << "Your name is: " <<
fullName;
// Type your full name: John Doe
// Your name is: John
Dans l'exemple ci-dessus, vous vous attendriez à ce que le programme imprime "John Doe", mais il n'imprime que "John".
C'est pourquoi, lorsque nous travaillons avec des chaînes, nous utilisons souvent la getline()
fonction pour lire une ligne de texte. Il prend cin
comme premier paramètre, et la variable chaîne comme second :
Exemple
string fullName;
cout << "Type your full name: ";
getline (cin, fullName);
cout << "Your name is: " <<
fullName;
// Type your full name: John Doe
// Your name is: John Doe