Ciągi wejściowe użytkownika C++
Ciągi wejściowe użytkownika
Możliwe jest użycie operatora ekstrakcji >>
on cin
do wyświetlenia ciągu wprowadzonego przez użytkownika:
Przykład
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
Jednak cin
traktuje spację (białe znaki, tabulatory itp.) jako znak kończący, co oznacza, że może wyświetlić tylko jedno słowo (nawet jeśli wpiszesz wiele słów):
Przykład
string fullName;
cout << "Type your full name: ";
cin >>
fullName;
cout << "Your name is: " <<
fullName;
// Type your full name: John Doe
// Your name is: John
Z powyższego przykładu można by oczekiwać, że program wypisze "John Doe", ale wypisze tylko "John".
Dlatego podczas pracy z ciągami często używamy getline()
funkcji do odczytania wiersza tekstu. Przyjmuje cin
jako pierwszy parametr, a zmienną łańcuchową jako drugi:
Przykład
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