📄 ios.html
字号:
<HTML><HEAD><TITLE><ios></TITLE></HEAD><BODY><H1><A NAME="<ios>"><CODE><ios></CODE></A></H1><HR><P><B><CODE><A HREF="#ios">ios</A>· <A HREF="#fpos">fpos</A>· <A HREF="#ios_base">ios_base</A>· <A HREF="#locale">locale</A>· <A HREF="#mbstate_t">mbstate_t</A>· <A HREF="#streamoff">streamoff</A>· <A HREF="#streampos">streampos</A>· <A HREF="#streamsize">streamsize</A></CODE></B></P><P><B><CODE><A HREF="#boolalpha">boolalpha</A>· <A HREF="#dec">dec</A>· <A HREF="#fixed">fixed</A>· <A HREF="#hex">hex</A>· <A HREF="#internal">internal</A>· <A HREF="#left">left</A>· <A HREF="#noboolalpha">noboolalpha</A>· <A HREF="#noshowbase">noshowbase</A>· <A HREF="#noshowpoint">noshowpoint</A>· <A HREF="#noshowpos">noshowpos</A>· <A HREF="#noskipws">noskipws</A>· <A HREF="#nounitbuf">nounitbuf</A>· <A HREF="#nouppercase">nouppercase</A>· <A HREF="#oct">oct</A>· <A HREF="#right">right</A>· <A HREF="#scientific">scientific</A>· <A HREF="#showbase">showbase</A>· <A HREF="#showpoint">showpoint</A>· <A HREF="#showpos">showpos</A>· <A HREF="#skipws">skipws</A>· <A HREF="#unitbuf">unitbuf</A>· <A HREF="#uppercase">uppercase</A></CODE></B></P><HR><P>Include the <A HREF="lib_cpp.html#iostreams">iostreams</A>standard header <B><CODE><ios></CODE></B> todefine several types and functions basic to the operation ofiostreams. (This header istypically included for you by another of the iostreams headers. Youseldom have occasion to include it directly.)</P><P>A large group of functions are<B><A NAME="manipulators">manipulators</A></B>. A manipulatordeclared in <CODE><ios></CODE> alters the values stored in itsargument object of class<CODE><A HREF="#ios_base">ios_base</A></CODE>. Other manipulatorsperform actions on streams controlled by objects of a type derived fromthis class,such as one of the classes<CODE><A HREF="istream.html#istream">istream</A></CODE> or<CODE><A HREF="ostream.html#ostream">ostream</A></CODE>.For example, <CODE><A HREF="#noskipws">noskipws</A>(str)</CODE>clears the format flag<CODE>ios_base::<A HREF="#ios_base::skipws">skipws</A></CODE> in the object<CODE>str</CODE>, which might be of one of these types.</P><P>You can also call a manipulator by inserting it into an outputstream or extracting it from an input stream, thanks to some specialmachinery supplied in the classes derived from<CODE>ios_base</CODE>. For example:</P><PRE>istr >> noskipws;</PRE><P>calls <CODE><A HREF="#noskipws">noskipws</A>(istr)</CODE>.</P><PRE> // DECLARATIONStypedef T1 <B><A HREF="#streamoff">streamoff</A></B>;typedef T2 <B><A HREF="#streamsize">streamsize</A></B>;class <B><A HREF="#ios_base">ios_base</A></B>;class <B><A HREF="#ios">ios</A></B>;class <B><A HREF="#fpos">fpos</A></B>;class <B><A HREF="#locale">locale</A></B>;typedef T3 <B><A HREF="#mbstate_t">mbstate_t</A></B>;typedef fpos <B><A HREF="#streampos">streampos</A></B>; // MANIPULATORSios_base& <B><A HREF="#boolalpha">boolalpha</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#noboolalpha">noboolalpha</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#showbase">showbase</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#noshowbase">noshowbase</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#showpoint">showpoint</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#noshowpoint">noshowpoint</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#showpos">showpos</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#noshowpos">noshowpos</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#skipws">skipws</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#noskipws">noskipws</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#unitbuf">unitbuf</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#nounitbuf">nounitbuf</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#uppercase">uppercase</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#nouppercase">nouppercase</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#internal">internal</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#left">left</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#right">right</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#dec">dec</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#hex">hex</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#oct">oct</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#fixed">fixed</A></B>(ios_base& iosbase);ios_base& <B><A HREF="#scientific">scientific</A></B>(ios_base& iosbase); // END OF DECLARATIONS</PRE><H2><A NAME="ios"><CODE>ios</CODE></A></H2><HR><P><B><CODE><A HREF="#ios::bad">bad</A>· <A HREF="#ios::ios">ios</A>· <A HREF="#ios::char_type">char_type</A>· <A HREF="#ios::clear">clear</A>· <A HREF="#ios::copyfmt">copyfmt</A>· <A HREF="#ios::eof">eof</A>· <A HREF="#ios::exceptions">exceptions</A>· <A HREF="#ios::init">init</A>· <A HREF="#ios::fail">fail</A>· <A HREF="#ios::good">good</A>· <A HREF="#ios::imbue">imbue</A>· <A HREF="#ios::init">init</A>· <A HREF="#ios::int_type">int_type</A>· <A HREF="#ios::narrow">narrow</A>· <A HREF="#ios::off_type">off_type</A>· <A HREF="#ios::operator!">operator!</A>· <A HREF="#ios::operator void *">operator void *</A>· <A HREF="#ios::pos_type">pos_type</A>· <A HREF="#ios::rdbuf">rdbuf</A>· <A HREF="#ios::rdstate">rdstate</A>· <A HREF="#ios::setstate">setstate</A>· <A HREF="#ios::tie">tie</A>· <A HREF="#ios::traits_type">traits_type</A>· <A HREF="#ios::widen">widen</A></CODE></B></P><HR><PRE>class <B>ios</B> : public ios_base {public: typedef char <B><A HREF="#ios::char_type">char_type</A></B>; typedef char_traits <B><A HREF="#ios::traits_type">traits_type</A></B>; typedef char_traits::int_type <B><A HREF="#ios::int_type">int_type</A></B>; typedef char_traits::pos_type <B><A HREF="#ios::pos_type">pos_type</A></B>; typedef char_traits::off_type <B><A HREF="#ios::off_type">off_type</A></B>; explicit <B><A HREF="#ios::ios">ios</A></B>(streambuf *strbuf); virtual <B>~ios</B>(); <B><A HREF="#ios::operator void *">operator void *</A></B>() const; bool <B><A HREF="#ios::operator!">operator!</A></B>() const; iostate <B><A HREF="#ios::rdstate">rdstate</A></B>() const; void <B><A HREF="#ios::clear">clear</A></B>(iostate state = goodbit); void <B><A HREF="#ios::setstate">setstate</A></B>(iostate state); bool <B><A HREF="#ios::good">good</A></B>() const; bool <B><A HREF="#ios::eof">eof</A></B>() const; bool <B><A HREF="#ios::fail">fail</A></B>() const; bool <B><A HREF="#ios::bad">bad</A></B>() const; iostate <B><A HREF="#ios::exceptions">exceptions</A></B>() const; iostate <B><A HREF="#ios::exceptions">exceptions</A></B>(iostate newexcept); ios& <B><A HREF="#ios::copyfmt">copyfmt</A></B>(const ios& right); locale <B><A HREF="#ios::imbue">imbue</A></B>(const locale& loc); char_type <B><A HREF="#ios::widen">widen</A></B>(char ch); char <B><A HREF="#ios::narrow">narrow</A></B>(char_type ch, char dflt); char_type <B><A HREF="#ios::fill">fill</A></B>() const; char_type <B><A HREF="#ios::fill">fill</A></B>(char_type ch); ostream *<B><A HREF="#ios::tie">tie</A></B>() const; ostream *<B><A HREF="#ios::tie">tie</A></B>(ostream *newtie); streambuf *<B><A HREF="#ios::rdbuf">rdbuf</A></B>() const; streambuf *<B><A HREF="#ios::rdbuf">rdbuf</A></B>(streambuf *strbuf);protected: void <B><A HREF="#ios::init">init</A></B>(streambuf *strbuf); <B><A HREF="#ios::ios">ios</A></B>(); <B>ios</B>(const facet&); // not defined <B>void operator=</B>(const facet&) // not defined };</PRE><P>The class describes the storage and member functions commonto both input streams (of class<A HREF="istream.html#istream"><CODE>istream</CODE></A>)and output streams (of class<A HREF="ostream.html#ostream"><CODE>ostream</CODE></A>).An object of class<CODE>ios</CODE> helps control a stream with elementsof type <I>char,</I> also known as <CODE>char_type</CODE>, whose<A HREF="string2.html#character traits">character traits</A> are determined by theclass <CODE><A HREF="string2.html#char_traits">char_traits</A></CODE>.</P><P>An object of class <CODE>ios</CODE> stores:</P><UL><LI>a <B><A NAME="tie pointer">tie pointer</A></B> to an object of type<CODE><A HREF="ostream.html#ostream">ostream</A></CODE></LI><LI>a <B><A NAME="stream buffer pointer">stream buffer pointer</A></B>to an object of type<CODE><A HREF="streambu.html#streambuf">streambuf</A></CODE></LI><LI><A HREF="#formatting information">formatting information</A></LI><LI><A HREF="#stream state information">stream state information</A>in a base object of type<A HREF="#ios_base"><CODE>ios_base</CODE></A></LI><LI>a <B><A NAME="fill character">fill character</A></B> in an objectof type <I>char_type</I></LI></UL><H3><A NAME="ios::bad"><CODE>ios::bad</CODE></A></H3><PRE>bool <B>bad</B>() const;</PRE><P>The member function returns true if<CODE><A HREF="#ios::rdstate">rdstate</A>() & badbit</CODE>is nonzero.</P><H3><A NAME="ios::ios"><CODE>ios::ios</CODE></A></H3><PRE>explicit <B>ios</B>(streambuf *strbuf);<B>ios</B>();</PRE><P>The first constructor initializes its member objects by calling<CODE><A HREF="#ios::init">init</A>(strbuf)</CODE>. The second(protected) constructor leaves its member objects uninitialized. A latercall to <CODE>init</CODE> <I>must</I> initialize the object before itcan be safely destroyed.</P><H3><A NAME="ios::char_type"><CODE>ios::char_type</CODE></A></H3><PRE>typedef char <B>char_type</B>;</PRE><P>The type is a synonym for <I>char.</I></P><H3><A NAME="ios::clear"><CODE>ios::clear</CODE></A></H3><PRE>void <B>clear</B>(iostate state = goodbit);</PRE><P>The member function replaces the stored<A HREF="#stream state information">stream state information</A> with<CODE>state |(<A HREF="#ios::rdbuf">rdbuf</A>() != 0 ? goodbit : badbit)</CODE>.If <CODE>state &<A HREF="#ios::exceptions">exceptions</A>()</CODE> is nonzero, itthen throws an object of class<CODE><A HREF="#ios_base::failure">failure</A></CODE>.</P><H3><A NAME="ios::copyfmt"><CODE>ios::copyfmt</CODE></A></H3><PRE>ios& <B>copyfmt</B>(const ios& right);</PRE><P>The member function reports the<A HREF="#callback event">callback event</A><CODE><A HREF="#ios_base::erase_event">erase_event</A></CODE>.It then copies from <CODE>right</CODE> into <CODE>*this</CODE>the <A HREF="#fill character">fill character</A>,the <A HREF="#tie pointer">tie pointer</A>, and the<A HREF="#formatting information">formatting information</A>.Before altering the<A HREF="#exception mask">exception mask</A>, it reports thecallback event<CODE><A HREF="#ios_base::copyfmt_event">copyfmt_event</A></CODE>.If, after the copy is complete, <CODE>state &<A HREF="#ios::exceptions">exceptions</A>()</CODE> is nonzero,the function effectively calls<CODE><A HREF="#ios::clear">clear</A></CODE> with the argument<CODE><A HREF="#ios::rdstate">rdstate</A>()</CODE>.It returns <CODE>*this</CODE>.</P><H3><A NAME="ios::eof"><CODE>ios::eof</CODE></A></H3><PRE>bool <B>eof</B>() const;</PRE><P>The member function returns true if<CODE><A HREF="#ios::rdstate">rdstate</A>() & eofbit</CODE>is nonzero.</P><H3><A NAME="ios::exceptions"><CODE>ios::exceptions</CODE></A></H3><PRE>iostate <B>exceptions</B>() const;iostate <B>exceptions</B>(iostate newexcept);</PRE><P>The first member function returns the stored<A HREF="#exception mask">exception mask</A>. The second memberfunction stores <CODE>except</CODE> in the exception mask and returnsits previous stored value.</P><H3><A NAME="ios::fail"><CODE>ios::fail</CODE></A></H3><PRE>bool <B>fail</B>() const;</PRE><P>The member function returns true if<CODE><A HREF="#ios::rdstate">rdstate</A>() & (badbit | failbit)</CODE>is nonzero.</P><H3><A NAME="ios::fill"><CODE>ios::fill</CODE></A></H3><PRE>char_type <B>fill</B>() const;char_type <B>fill</B>(char_type ch);</PRE><P>The first member function returns the stored<A HREF="#fill character">fill character</A>. The second memberfunction stores <CODE>ch</CODE> in the fill character and returns itsprevious stored value.</P><H3><A NAME="ios::good"><CODE>ios::good</CODE></A></H3><PRE>bool <B>good</B>() const;</PRE><P>The member function returns true if<CODE><A HREF="#ios::rdstate">rdstate</A>() == goodbit</CODE>(no state flags are set).</P><H3><A NAME="ios::imbue"><CODE>ios::imbue</CODE></A></H3><PRE>locale <B>imbue</B>(const locale& loc);</PRE><P>The member function calls<CODE><A HREF="#ios_base::imbue">ios_base::imbue</A>(loc)</CODE>.If <CODE><A HREF="#ios::rdbuf">rdbuf</A></CODE> is not anull pointer, it also calls<CODE>rdbuf()-><A HREF="streambu.html#streambuf::pubimbue">pubimbue</A>(loc)</CODE>.In any case, it returns the value returned by the call to<CODE>ios_base::imbue</CODE>.</P><H3><A NAME="ios::init"><CODE>ios::init</CODE></A></H3><PRE>void <B>init</B>(streambuf *strbuf);</PRE><P>The member function stores values in all member objects, so that:</P><UL><LI><CODE><A HREF="#ios::rdbuf">rdbuf</A>()</CODE> returns<CODE>strbuf</CODE></LI><LI><CODE><A HREF="#ios::tie">tie</A>()</CODE> returns a nullpointer</LI><LI><CODE><A HREF="#ios::rdstate">rdstate</A>()</CODE> returns<CODE><A HREF="#ios_base::goodbit">goodbit</A></CODE> if<CODE>strbuf</CODE> is nonzero; otherwise, it returns<CODE><A HREF="#ios_base::badbit">badbit</A></CODE></LI><LI><CODE><A HREF="#ios::exceptions">exceptions</A>()</CODE> returns<CODE>goodbit</CODE></LI>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -