📄 cppio_details.html
字号:
<!-- saved from url=(0022)http://internet.e-mail -->
<HTML><HEAD> <TITLE>C++ I/O</TITLE></HEAD><BODY BGCOLOR="FFFFFF"><TABLE WIDTH="100%" BGCOLOR="EEEEFF"><TR><TD> <A HREF="index.html">cppreference.com</A> -> <A HREF="cppio.html">C++ I/O</A> -> Details</TD></TR></TABLE><H1>C++ I/O</H1> <HR><H2> 构造器</H2><i>语法:</i><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> fstream( const char *filename, openmode mode ); ifstream( const char *filename, openmode mode ); ofstream( const char *filename, openmode mode );</PRE></TD></TR></TABLE><P> Tstream, ifstream, 和ofstream对象用于文件输入/输出. 可选择<i>模式</i>通过使用<A HREF="#mode_flags">ios stream mode flags</A>定义了一个文件如何打开。<I>filename</I> 指定被打开的文件并与流相关联。例如,下面的代码读取输入的数据并追加结果到一个输出文件中.</P><PRE> ifstream fin( "/tmp/data.txt" ); ofstream fout( "/tmp/results.txt", ios::app ); while( fin >> temp ) fout << temp + 2 << endl; fin.close(); fout.close();</PRE><P> 输入和输出文件流可以相似的方式被使用在C++预定义I/O流,<STRONG>cin</STRONG> 和 <STRONG>cout</STRONG>.</P><I>相关主题:</I><BR><STRONG><A HREF="#close">close()</A>, <A HREF="#open">open()</A> </STRONG><HR><H2> <A NAME="bad">bad</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> bool bad();</PRE></TD></TR></TABLE><P> 如果当前的流发生致命的错误,bad()函数返回<STRONG>true</STRONG>,否则返回<STRONG>false</STRONG>。</P><I>相关主题:</I><BR><STRONG> <A HREF="#good">good()</A> </STRONG><HR><H2> <A NAME="clear">clear</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> void clear( iostate flags = goodbit );</PRE></TD></TR></TABLE><P> 函数clear()清除与当前流相关联的<A HREF="cppio_flags.html">标志</A>。默认标志是goodbit它清除所有标志.否则只有指定的标志被清除。</P><I>相关主题:</I><BR><STRONG> <A HREF="#rdstate">rdstate()</A> </STRONG><HR><H2> <A NAME="close">close</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> void close();</PRE></TD></TR></TABLE><P> Tclose()函数关闭相关的文件流。</P><I>相关主题:</I><BR><STRONG> <A HREF="#open">open()</A> </STRONG><HR><H2> <A NAME="eof">eof</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> bool eof();</PRE></TD></TR></TABLE><P> 如果到达相关联的输入文件的末尾,eof()函数返回<STRONG>true</STRONG>,否则返回<STRONG>false</STRONG>。例如:</P><PRE> char ch; ifstream fin( "temp.txt" ); while( !fin.eof() ) { fin >> ch; cout << ch; } fin.close();</PRE><I>相关主题:</I><BR><STRONG><A HREF="#bad">bad()</A>, <A HREF="#fail">fail()</A>, <A HREF="#good">good()</A>, <A HREF="#rdstate">rdstate()</A>, <A HREF="#clear">clear()</A> </STRONG><HR><H2> <A NAME="fail">fail</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> bool fail();</PRE></TD></TR></TABLE><P> 如果当前流发生错误fail()函数返回<STRONG>true</STRONG> ,否则返回<STRONG>false</STRONG> 。</P><I>相关主题:</I><BR><STRONG><A HREF="#good">good()</A>, <A HREF="#eof">eof()</A>, <A HREF="#bad">bad()</A>, <A HREF="#clear">clear()</A>, <A HREF="#rdstate">rdstate()</A> </STRONG><HR><H2> <A NAME="fill">fill</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> char fill(); char fill( char ch );</PRE></TD></TR></TABLE><P> 函数fill()可以返回当前填充字符,或者设置当前填充字符为<I>ch</I> 。填充字符被定义为用来填充字符,当一个数字比较指定<A HREF="#width">宽度</A>T小时。默认的填充字符是空格。</P><I>相关主题:</I><BR><STRONG><A HREF="#precision">precision()</A>, <A HREF="#width">width()</A> </STRONG><HR><H2> <A NAME="flags">flags</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> fmtflags flags(); fmtflags flags( fmtflags f );</PRE></TD></TR></TABLE><P> flags()函数或者返回当前流的<A HREF="cppio_flags.html">格式标志</A>,或者为当前流设置标志为<I>f</I>。</P><I>相关主题:</I><BR><STRONG><A HREF="#unsetf">unsetf()</A>, <A HREF="#setf">setf()</A> </STRONG><HR><H2> <A NAME="flush">flush</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> ostream &flush();</PRE></TD></TR></TABLE><P> flush()函数可以引起当把前流的缓冲区写出到附属设备中去。这个函数对于打印调试信息很用处,因为当程序有机会把缓冲区内容写出到屏幕之前,程序会被中断。灵活地使用flush()可以保证你所有的调试状态都实在的打印出来。</P><I>相关主题:</I><BR><STRONG><A HREF="#put">put()</A>, <A HREF="#write">write()</A> </STRONG><HR><H2> <A NAME="gcount">gcount</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> streamsize gcount();</PRE></TD></TR></TABLE><P> 函数gcount()被用于输入流,并返回上一次输入操作被读入的字符的数目。</P><I>相关主题:</I><BR><STRONG><A HREF="#get">get()</A>, <A HREF="#getline">getline()</A>, <A HREF="#read">read()</A> </STRONG><HR><H2> <A NAME="get">get</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> int get(); istream &get( char &ch ); istream &get( char *buffer, streamsize num ); istream &get( char *buffer, streamsize num, char delim ); istream &get( streambuf &buffer ); istream &get( streambuf &buffer, char delim );</PRE></TD></TR></TABLE><P> get()函数被用于输入流,和以下这些: <UL> <LI>读入一个字符并返回它的值, <LI>读入一个字符并把它存储在<I>ch</I>, <LI>读取字符到<I>buffer</I>直到<I>num</I> - 1个字符被读入, 或者碰到EOF或换行标志, <LI>读取字符到<I>buffer</I>直到已读入<I>num</I> - 1 个字符,或者碰到EOF或<I>delim</I>(<I>delim</I>直到下一次不会被读取),<LI> 读取字符到<i>buffer</i>中,直到碰到换行或EOF, <LI>或是读取字符到<I>buffer</I>中,直到碰到换行,EOF或<I>delim</I>。(相反, <I>delim</I>直到下一个get()不会被读取 ). </UL> 例如,下面的代码一个字符一个字符的显示文件temp.txt中的内容:</P><PRE> char ch; ifstream fin( "temp.txt" ); while( fin.get(ch) ) cout << ch; fin.close();</PRE><I>相关主题:</I><BR><STRONG><A HREF="#put">put()</A>, <A HREF="#read">read()</A>, <A HREF="#getline">getline()</A> </STRONG><HR><H2> <A NAME="getline">getline</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> istream &getline( char *buffer, streamsize num ); istream &getline( char *buffer, streamsize num, char delim );</PRE></TD></TR></TABLE><P> getline()函数用于输入流,读取字符到<i>buffer</i>中,直到下列情况发生: <UL> <LI><I>num</I> - 1个字符已经读入, <LI>碰到一个换行标志,<LI>碰到一个EOF, <LI>或者,任意地读入,直到读到字符<I>delim</I>。<I>delim</I>字符不会被放入<I>buffer</I>中。 </UL></P><I>相关主题:</I><BR><STRONG><A HREF="#get">get()</A>, <A HREF="#read">read()</A> </STRONG><HR><H2> <A NAME="good">good</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> bool good();</PRE></TD></TR></TABLE><P> 如果当前流没有发生错误,函数good()返回<STRONG>true</STRONG> ,否则返回<STRONG>false</STRONG>。</P><I>相关主题:</I><BR><STRONG><A HREF="#bad">bad()</A>, <A HREF="#fail">fail()</A>, <A HREF="#eof">eof()</A>, <A HREF="#clear">clear()</A>, <A HREF="#rdstate">rdstate()</A> </STRONG><HR><H2> <A NAME="ignore">ignore</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> istream &ignore( streamsize num=1, int delim=EOF );</PRE></TD></TR></TABLE><P> ignore()函数用于输入流。它读入字符,直到已经读了<I>num</I> 个字符(默认为1)或是直到字符<I>delim</I> 被读入(默认为EOF).</P><I>相关主题:</I><BR><STRONG><A HREF="#get">get()</A>, <A HREF="#getline">getline()</A> </STRONG><HR><H2> <A NAME="open">open</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> void open( const char *filename ); void open( const char *filename, openmode mode );</PRE></TD></TR></TABLE><P> 函数open()用于文件流。它打开<I>filename</I> 并将其与当前的流相关联。可以选择的模式有:</P><A NAME="mode_flags"></A><TABLE> <TR><TH>模式</TH><TH>含义</TH></TR> <TR BGCOLOR="EEEEFF"><TD>ios::app</TD><TD>添加输出</TD></TR> <TR><TD>ios::ate</TD><TD>当已打开时寻找到EOF</TD></TR> <TR BGCOLOR="EEEEFF"><TD>ios::binary</TD><TD>以二进制模式打开文件</TD></TR> <TR><TD>ios::in</TD><TD>为读取打开文件</TD></TR> <TR BGCOLOR="EEEEFF"><TD>ios::out</TD><TD>为写入打开文件<TR><TD>ios::trunc</TD><TD> 覆盖存在的文件</TD></TR></TABLE><P> 如果open()失败,当用于一个布尔表达式中时,作为结果的流会给出对错误的评估。例如:</P><PRE> ifstream inputStream("file.txt"); if( !inputStream ) { cerr << "Error opening input stream" << endl; return; }</PRE><I>相关主题:</I><BR><STRONG><A HREF="#close">close()</A>, <A HREF="#Constructors">fstream(), ifstream(), ofstream()</A>, </STRONG><HR><H2> <A NAME="peek">peek</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> int peek();</PRE></TD></TR></TABLE><P> 函数peek()用于输入流中,并返回在流中的下一个字符或如果是处于被入的文件的结尾处返回EOF。peek()不会把字符从流中移除。</P><I>相关主题:</I><BR><STRONG><A HREF="#get">get()</A>, <A HREF="#putback">putback()</A> </STRONG><HR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -