Строки пользовательского ввода C++
Строки ввода пользователя
Можно использовать оператор извлечения >>
для cin
отображения строки, введенной пользователем:
Пример
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
Однако cin
считает пробел (пробел, табуляцию и т. д.) завершающим символом, что означает, что он может отображать только одно слово (даже если вы набираете много слов):
Пример
string fullName;
cout << "Type your full name: ";
cin >>
fullName;
cout << "Your name is: " <<
fullName;
// Type your full name: John Doe
// Your name is: John
В приведенном выше примере вы ожидаете, что программа напечатает «John Doe», но она напечатает только «John».
Вот почему при работе со строками мы часто используем getline()
функцию для чтения строки текста. Он принимает cin
в качестве первого параметра и строковую переменную в качестве второго:
Пример
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