template<class charT, class traits, class Allocator>
basic_istream<charT, traits>&
operator>>(basic_istream<charT, traits>& is,
basic_string<charT, traits, Allocator>& str);
Effects: Ведет себя как formatted input function. После создания sentry объекта, если часовой преобразуется в true, вызывает, str.erase() а затем извлекает символы из is и добавляет их, str как если бы, вызывая str.append(1, c). Если is.width() больше нуля, максимальное количество n добавляемых символов is.width(): в противном случае n это str.max_size(). Символы извлекаются и добавляются до тех пор, пока не произойдет одно из следующих событий:
n символы сохраняются;
конец файла встречается во входной последовательности;
isspace(c, is.getloc()) является true для следующего доступного входного символа c.
После извлечения последнего символа (если есть) вызывается is.width(0) и sentry объект уничтожается.
Если функция не извлекает символы, она вызывает is.setstate(ios::failbit), что может вызвать throw ios_base::failure ([iostate.flags]).
template<class charT, class traits, class Allocator>
basic_ostream<charT, traits>&
operator<<(basic_ostream<charT, traits>& os,
const basic_string<charT, traits, Allocator>& str);
template<class charT, class traits, class Allocator>
basic_istream<charT, traits>&
getline(basic_istream<charT, traits>& is,
basic_string<charT, traits, Allocator>& str,
charT delim);
template<class charT, class traits, class Allocator>
basic_istream<charT, traits>&
getline(basic_istream<charT, traits>&& is,
basic_string<charT, traits, Allocator>& str,
charT delim);
Effects: Ведет себя как объект unformatted input function, за исключением того, что не влияет на значение, возвращаемое при последующих вызовах basic_istream<>::gcount(). После создания sentry объекта, если часовой преобразуется в true, вызывает, str.erase() а затем извлекает символы is и добавляет их, str как если бы, вызывая str.append(1, c) до тех пор, пока не произойдет одно из следующих событий:
конец файла происходит во входной последовательности (в этом случае getline вызывается функция is.setstate(ios_base::eofbit)).
traits::eq(c, delim) для следующего доступного входного символа c (в этом случае c извлекается, но не добавляется) ([iostate.flags])
str.max_size() символы сохраняются (в этом случае функция calls is.setstate(ios_base::failbit)) ([iostate.flags])
Условия проверяются в указанном порядке. В любом случае после извлечения последнего символа sentry объект уничтожается.
Если функция не извлекает символы, она вызывает is.setstate(ios_base::failbit) which may throw ios_base::failure ([iostate.flags]).
template<class charT, class traits, class Allocator>
basic_istream<charT, traits>&
getline(basic_istream<charT, traits>& is,
basic_string<charT, traits, Allocator>& str);
template<class charT, class traits, class Allocator>
basic_istream<charT, traits>&
getline(basic_istream<charT, traits>&& is,
basic_string<charT, traits, Allocator>& str);