⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 istream.html

📁 ST20 Embedded Toolset R2.0.5用于开发基于ST20芯片机顶盒软件的开发平台,2.0.5版本,国内找不到的.在国外论坛上花了N天才找到!
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<HTML><HEAD><TITLE>&lt;istream&gt;</TITLE></HEAD><BODY><H1><A NAME="&lt;istream&gt;"><CODE>&lt;istream&gt;</CODE></A></H1><HR><P>Include the <A HREF="lib_cpp.html#iostreams">iostreams</A>standard header <B><CODE>&lt;istream&gt;</CODE></B>to define template class<CODE><A HREF="#basic_istream">basic_istream</A></CODE>,which mediates extractions for the iostreams, and the template class.<CODE><A HREF="#basic_iostream">basic_iostream</A></CODE>,which mediates both insertions and extractions.The header also defines a related<A HREF="ios.html#manipulators">manipulator</A>.(This header is typically included for you by anotherof the iostreams headers. You seldom have occasion to include itdirectly.)</P><PRE>namespace std {template&lt;class Elem, class Tr = char_traits&lt;Elem&gt; &gt;    class <B><A HREF="#basic_istream">basic_istream</A></B>;typedef basic_istream&lt;char, char_traits&lt;char&gt; &gt;    <B><A HREF="#istream">istream</A></B>;typedef basic_istream&lt;wchar_t, char_traits&lt;wchar_t&gt; &gt;    <B><A HREF="#wistream">wistream</A></B>;template&lt;class Elem, class Tr = char_traits&lt;Elem&gt; &gt;    class <B><A HREF="#basic_iostream">basic_iostream</A></B>;typedef basic_iostream&lt;char, char_traits&lt;char&gt; &gt;    <B><A HREF="#iostream">iostream</A></B>;typedef basic_iostream&lt;wchar_t, char_traits&lt;wchar_t&gt; &gt;    <B><A HREF="#wiostream">wiostream</A></B>;        // EXTRACTORStemplate&lt;class Elem, class Tr&gt;    basic_istream&lt;Elem, Tr&gt;&amp;        <B><A HREF="#operator&gt;&gt;">operator&gt;&gt;</A></B>(basic_istream&lt;Elem, Tr&gt;&amp; istr, Elem *str);template&lt;class Elem, class Tr&gt;    basic_istream&lt;Elem, Tr&gt;&amp;        <B><A HREF="#operator&gt;&gt;">operator&gt;&gt;</A></B>(basic_istream&lt;Elem, Tr&gt;&amp; istr, Elem&amp; ch);template&lt;class Tr&gt;    basic_istream&lt;char, Tr&gt;&amp;        <B><A HREF="#operator&gt;&gt;">operator&gt;&gt;</A></B>(basic_istream&lt;char, Tr&gt;&amp; istr,            signed char *str);template&lt;class Tr&gt;    basic_istream&lt;char, Tr&gt;&amp;        <B><A HREF="#operator&gt;&gt;">operator&gt;&gt;</A></B>(basic_istream&lt;char, Tr&gt;&amp; istr,            signed char&amp; ch);template&lt;class Tr&gt;    basic_istream&lt;char, Tr&gt;&amp;        <B><A HREF="#operator&gt;&gt;">operator&gt;&gt;</A></B>(basic_istream&lt;char, Tr&gt;&amp; istr,            unsigned char *str);template&lt;class Tr&gt;    basic_istream&lt;char, Tr&gt;&amp;        <B><A HREF="#operator&gt;&gt;">operator&gt;&gt;</A></B>(basic_istream&lt;char, Tr&gt;&amp; istr,            unsigned char&amp; ch);        // MANIPULATORStemplate class&lt;Elem, Tr&gt;    basic_istream&lt;Elem, Tr&gt;&amp; <B><A HREF="#ws">ws</A></B>(basic_istream&lt;Elem, Tr&gt;&amp; istr);    };</PRE><H2><A NAME="basic_iostream"><CODE>basic_iostream</CODE></A></H2><PRE>template &lt;class Elem, class Tr = char_traits&lt;Elem&gt; &gt;    class <B>basic_iostream</B> : public basic_istream&lt;Elem, Tr&gt;,        public basic_ostream&lt;Elem, Tr&gt; {public:    explicit <B>basic_iostream</B>(basic_streambuf&lt;Elem, Tr&gt;&amp; *strbuf);    virtual <B>~basic_iostream</B>();    };</PRE><P>The template class describes an object that controlsinsertions, through its base object<CODE><A HREF="ostream.html#basic_ostream">basic_ostream</A>&lt;Elem, Tr&gt;</CODE>,and extractions, through its base object<CODE><A HREF="#basic_istream">basic_istream</A>&lt;Elem, Tr&gt;</CODE>.The two objects share a common virtual base object<CODE><A HREF="ios.html#basic_ios">basic_ios</A>&lt;Elem, Tr&gt;</CODE>.They also manage a common<A HREF="streambu.html#stream buffer">stream buffer</A>,with elements of type <CODE>Elem</CODE>, whose<A HREF="string2.html#character traits">character traits</A> are determinedby the class <CODE>Tr</CODE>. The constructor initializes its base objectsvia <CODE>basic_istream(strbuf)</CODE> and <CODE>basic_ostream(strbuf)</CODE>.</P><H2><A NAME="basic_istream"><CODE>basic_istream</CODE></A></H2><HR><P><B><CODE><A HREF="#basic_istream::basic_istream">basic_istream</A>&#183; <A HREF="#basic_istream::gcount">gcount</A>&#183; <A HREF="#basic_istream::get">get</A>&#183; <A HREF="#basic_istream::getline">getline</A>&#183; <A HREF="#basic_istream::ignore">ignore</A>&#183; <A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A>&#183; <A HREF="#basic_istream::peek">peek</A>&#183; <A HREF="#basic_istream::putback">putback</A>&#183; <A HREF="#basic_istream::read">read</A>&#183; <A HREF="#basic_istream::readsome">readsome</A>&#183; <A HREF="#basic_istream::seekg">seekg</A>&#183; <A HREF="#basic_istream::sentry">sentry</A>&#183; <A HREF="#basic_istream::sync">sync</A>&#183; <A HREF="#basic_istream::tellg">tellg</A>&#183; <A HREF="#basic_istream::unget">unget</A></CODE></B></P><HR><PRE>template &lt;class Elem, class Tr = char_traits&lt;Elem&gt; &gt;    class <B>basic_istream</B>        : virtual public basic_ios&lt;Elem, Tr&gt; {public:    typedef typename basic_ios&lt;Elem, Tr&gt;::char_type char_type;    typedef typename basic_ios&lt;Elem, Tr&gt;::traits_type traits_type;    typedef typename basic_ios&lt;Elem, Tr&gt;::int_type int_type;    typedef typename basic_ios&lt;Elem, Tr&gt;::pos_type pos_type;    typedef typename basic_ios&lt;Elem, Tr&gt;::off_type off_type;    explicit <B><A HREF="#basic_istream::basic_istream">basic_istream</A></B>(basic_streambuf&lt;Elem, Tr&gt; *strbuf);    class <B><A HREF="#basic_istream::sentry">sentry</A></B>;    virtual <B>~basic_istream</B>();    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(        basic_istream&amp; (*pfn)(basic_istream&amp;));    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(        ios_base&amp; (*pfn)(ios_base&amp;));    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(        basic_ios&lt;Elem, Tr&gt;&amp; (*pfn)(basic_ios&lt;Elem, Tr&gt;&amp;));    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(        basic_streambuf&lt;Elem, Tr&gt; *strbuf);    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(bool&amp; val);    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(short&amp; val);    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(unsigned short&amp; val);    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(int&amp; val);    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(unsigned int&amp; val);    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(long&amp; val);    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(unsigned long&amp; val);    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(void *&amp; val);    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(float&amp; val);    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(double&amp; val);    basic_istream&amp; <B><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></B>(long double&amp; val);    streamsize <B><A HREF="#basic_istream::gcount">gcount</A></B>() const;    int_type <B><A HREF="#basic_istream::get">get</A></B>();    basic_istream&amp; <B><A HREF="#basic_istream::get">get</A></B>(char_type&amp; ch);    basic_istream&amp; <B><A HREF="#basic_istream::get">get</A></B>(char_type *str, streamsize count);    basic_istream&amp;        <B><A HREF="#basic_istream::get">get</A></B>(char_type *str, streamsize count, char_type delim);    basic_istream&amp;        <B><A HREF="#basic_istream::get">get</A></B>(basic_streambuf&lt;char_type, Tr&gt;&amp; strbuf);    basic_istream&amp;        <B><A HREF="#basic_istream::get">get</A></B>(basic_streambuf&lt;Elem, Tr&gt;&amp; strbuf, char_type delim);    basic_istream&amp; <B><A HREF="#basic_istream::getline">getline</A></B>(char_type *str, streamsize count);    basic_istream&amp; <B><A HREF="#basic_istream::getline">getline</A></B>(char_type *str, streamsize count,        char_type delim);    basic_istream&amp; <B><A HREF="#basic_istream::ignore">ignore</A></B>(streamsize count = 1,        int_type delim = traits_type::eof());    int_type <B><A HREF="#basic_istream::peek">peek</A></B>();    basic_istream&amp; <B><A HREF="#basic_istream::read">read</A></B>(char_type *str, streamsize count);    streamsize <B><A HREF="#basic_istream::readsome">readsome</A></B>(char_type *str, streamsize count);    basic_istream&amp; <B><A HREF="#basic_istream::putback">putback</A></B>(char_type ch);    basic_istream&amp; <B><A HREF="#basic_istream::unget">unget</A></B>();    pos_type <B><A HREF="#basic_istream::tellg">tellg</A></B>();    basic_istream&amp; <B><A HREF="#basic_istream::seekg">seekg</A></B>(pos_type pos);    basic_istream&amp; <B><A HREF="#basic_istream::seekg">seekg</A></B>(off_type off,        ios_base::seek_dir way);    int <B><A HREF="#basic_istream::sync">sync</A></B>();    };</PRE><P>The template class describes an object that controlsextraction of elements and encoded objects from a<A HREF="streambu.html#stream buffer">stream buffer</A>with elements of type <CODE>Elem</CODE>, also known as<CODE><A HREF="ios.html#basic_ios::char_type">char_type</A></CODE>, whose<A HREF="string2.html#character traits">character traits</A> are determined by theclass <CODE>Tr</CODE>, also known as<CODE><A HREF="ios.html#basic_ios::traits_type">traits_type</A></CODE>.</P><P>Most of the member functions that overload<CODE><A HREF="#basic_istream::operator&gt;&gt;">operator&gt;&gt;</A></CODE>are <B><A NAME="formatted input functions">formatted input functions</A></B>.They follow the pattern:</P><PRE>    iostate state = goodbit;    const sentry ok(*this);    if (ok)        {try            {&lt;extract elements and convert            accumulate flags in state            store a successful conversion&gt; }        catch (...)            {try                {setstate(badbit); }            catch (...)                {}            if ((exceptions() &amp; badbit) != 0)                throw; }}    setstate(state);    return (*this);</PRE><P>Many other member functions are<B><A NAME="unformatted input functions">unformatted input functions</A></B>.They follow the pattern:</P><PRE>    iostate state = goodbit;    count = 0;    // the value returned by gcount    const sentry ok(*this, true);    if (ok)        {try            {&lt;extract elements and deliver            count extracted elements in count            accumulate flags in state&gt; }        catch (...)            {try                {setstate(badbit); }            catch (...)                {}            if ((exceptions() &amp; badbit) != 0)                throw; }}    setstate(state);</PRE><P>Both groups of functions call<CODE><A HREF="ios.html#basic_ios::setstate">setstate</A>(eofbit)</CODE>if they encounter end-of-file while extracting elements.</P><P>An object of class <CODE>basic_istream&lt;Elem, Tr&gt;</CODE> stores:</P><UL><LI>a virtual public base object of class<B><CODE><A HREF="ios.html#basic_ios">basic_ios</A>&lt;Elem, Tr&gt;</CODE></B></LI><LI>an <B><A NAME="extraction count">extraction count</A></B>for the last unformatted input operation (called <CODE>count</CODE>in the code above)</LI></UL><H3><A NAME="basic_istream::basic_istream"><CODE>basic_istream::basic_istream</CODE></A></H3><PRE>explicit <B>basic_istream</B>(basic_streambuf&lt;Elem, Tr&gt; *strbuf);</PRE><P>The constructor initializes the base class by calling<CODE><A HREF="ios.html#basic_ios::init">init</A>(strbuf)</CODE>.It also stores zero in the<A HREF="#extraction count">extraction count</A>.</P><H3><A NAME="basic_istream::gcount"><CODE>basic_istream::gcount</CODE></A></H3><PRE>streamsize <B>gcount</B>() const;</PRE><P>The member function returns the<A HREF="#extraction count">extraction count</A>.</P><H3><A NAME="basic_istream::get"><CODE>basic_istream::get</CODE></A></H3><PRE>int_type <B><A HREF="#basic_istream::get">get</A></B>();basic_istream&amp; <B>get</B>(char_type&amp; ch);basic_istream&amp; <B>get</B>(char_type *str, streamsize count);basic_istream&amp; <B>get</B>(char_type *str, streamsize count,    char_type delim);basic_istream&amp; <B>get</B>(basic_streambuf&lt;Elem, Tr&gt;&amp; strbuf);basic_istream&amp; <B>get</B>(basic_streambuf&lt;Elem, Tr&gt;&amp; strbuf,    char_type delim);</PRE>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -