std::getline
Определено в заголовочном файле <string> | ||
template<class CharT, class Traits, class Allocator > std::basic_istream<CharT,Traits>& getline(std::basic_istream<CharT,Traits>& input, | (1) | |
template<class CharT, class Traits, class Allocator > std::basic_istream<CharT,Traits>& getline(std::basic_istream<CharT,Traits>&& input, | (1) | (начиная с C++11) |
template<class CharT, class Traits, class Allocator > std::basic_istream<CharT,Traits>& getline(std::basic_istream<CharT,Traits>& input, | (2) | |
template<class CharT, class Traits, class Allocator > std::basic_istream<CharT,Traits>& getline(std::basic_istream<CharT,Traits>&& input, | (2) | (начиная с C++11) |
Считывает неформатированные данные из потока в строку. Останавливается, как только найден символ, равный разделителю, или исчерпан поток. Первая версия использует в качестве разделителя delim
, вторая — '\n'. Символ-разделитель удаляется из потока и не помещается в строку.
[править]Параметры
input | — | поток, из которого считываются данные |
str | — | строка, в которую считываются данные |
delim | — | символ-разделитель |
[править]Возвращаемое значение
input
[править]Пример
Следующая программа спрашивает у пользователя его имя и затем приветствует, используя это имя.
#include <string>#include <iostream> int main(){std::string name;std::cout<<"Как вас зовут? "; std::getline(std::cin, name);std::cout<<"Здравствуйте, "<< name <<", приятно познакомиться.";}
Вывод:
Как вас зовут? Джон К. Паблик Здравствуйте, Джон К. Паблик, приятно познакомиться.