Question

Programmation novice ici. Je suis en train de permettre à un utilisateur d'entrer son nom, prenom middleName lastName sur une seule ligne dans la console (ex. « John Doe Jane »). Je veux faire l'option middleName. Donc, si l'utilisateur entre « John Doe » il ne sauve que les première et dernière chaînes de nom. Si l'utilisateur entre « John Doe Jane » il sauvera tous les trois.

J'allais utiliser ceci:

cin >> firstName >> middleName >> lastName;

alors je compris que si l'utilisateur le choisit pour leur prénom omettent et entre « John Doe » la console juste attendre que l'utilisateur d'entrer dans une troisième corde ... Je sais que je pourrais y arriver avec une grande chaîne et de rupture elle en deux ou trois, mais il est pas là un moyen plus simple de le faire avec trois chaînes comme ci-dessus?

Je sens que je manque quelque chose simple ici ...

Merci à l'avance.

Était-ce utile?

La solution

Utilisez getline puis parse l'aide d'un stringstream.

#include <sstream>

string line;
getline( cin, line );
istringstream parse( line );

string first, middle, last;
parse >> first >> middle >> last;
if ( last.empty() ) swap( middle, last );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top