Пример #1
0
std::streamsize ignore_line (
    std::basic_istream<CharT>& in, bool always_discard = false )
{
    std::streamsize nread = 0;

    if ( always_discard
            || ( in.rdbuf()->sungetc() != std::char_traits<CharT>::eof()
                 && in.get() != in.widen ( '\n' ) ) )
    {
        // The stream is good, and we haven't
        // read a full line yet, so clear it out
        in.ignore ( std::numeric_limits<std::streamsize>::max(), in.widen ( '\n' ) );
        nread = in.gcount();
    }
    return nread;
}