Chaînes d'entrée utilisateur C++


Chaînes d'entrée utilisateur

Il est possible d'utiliser l'opérateur d'extraction >>sur cinpour 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, cinconsidè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 cincomme 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