📄 qtextstream.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- /home/reggie/tmp/qt-3.0-reggie-5401/qt-x11-commercial-3.0.5/src/tools/qtextstream.cpp:53 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Translator" content="Cavendish">
<meta name="Qt zh_CN Documents Website" content="http://www.qiliang.net/qt">
<title>QTextStream类</title>
<style type="text/css"><!--
h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
body { background: #ffffff; color: black; font-family: "Times New Roman" }
--></style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr bgcolor="#E5E5E5">
<td valign=center>
<a href="index.html">
<font color="#004faf">主页</font></a>
| <a href="classes.html">
<font color="#004faf">所有的类</font></a>
| <a href="mainclasses.html">
<font color="#004faf">主要的类</font></a>
| <a href="annotated.html">
<font color="#004faf">注释的类</font></a>
| <a href="groups.html">
<font color="#004faf">分组的类</font></a>
| <a href="functions.html">
<font color="#004faf">函数</font></a>
</td>
<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table>
<h1 align=center>QTextStream类参考</h1>
<p>QTextStream类提供了使用QIODevice读写文本的基本功能。
<a href="#details">详情请见……</a>
<p><tt>#include <<a href="qtextstream-h.html">qtextstream.h</a>></tt>
<p>由<a href="qtextistream.html">QTextIStream</a>和<a href="qtextostream.html">QTextOStream</a>继承。
<p><a href="qtextstream-members.html">所有成员函数的列表。</a>
<h2>公有成员</h2>
<ul>
<li><div class=fn>enum <a href="#Encoding-enum"><b>Encoding</b></a> { Locale, Latin1, Unicode, UnicodeNetworkOrder, UnicodeReverse, RawUnicode, UnicodeUTF8 }</div></li>
<li><div class=fn>void <a href="#setEncoding"><b>setEncoding</b></a> ( Encoding e )</div></li>
<li><div class=fn>void <a href="#setCodec"><b>setCodec</b></a> ( QTextCodec * codec )</div></li>
<li><div class=fn><a href="#QTextStream"><b>QTextStream</b></a> ()</div></li>
<li><div class=fn><a href="#QTextStream-2"><b>QTextStream</b></a> ( QIODevice * iod )</div></li>
<li><div class=fn><a href="#QTextStream-3"><b>QTextStream</b></a> ( QString * str, int filemode )</div></li>
<li><div class=fn>QTextStream ( QString & str, int filemode ) <em>(obsolete)</em></div></li>
<li><div class=fn><a href="#QTextStream-5"><b>QTextStream</b></a> ( QByteArray a, int mode )</div></li>
<li><div class=fn><a href="#QTextStream-6"><b>QTextStream</b></a> ( FILE * fh, int mode )</div></li>
<li><div class=fn>virtual <a href="#~QTextStream"><b>~QTextStream</b></a> ()</div></li>
<li><div class=fn>QIODevice * <a href="#device"><b>device</b></a> () const</div></li>
<li><div class=fn>void <a href="#setDevice"><b>setDevice</b></a> ( QIODevice * iod )</div></li>
<li><div class=fn>void <a href="#unsetDevice"><b>unsetDevice</b></a> ()</div></li>
<li><div class=fn>bool <a href="#atEnd"><b>atEnd</b></a> () const</div></li>
<li><div class=fn>bool eof () const <em>(obsolete)</em></div></li>
<li><div class=fn>QTextStream & <a href="#operator-gt-gt"><b>operator>></b></a> ( QChar & c )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-gt-gt-2"><b>operator>></b></a> ( char & c )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-gt-gt-3"><b>operator>></b></a> ( signed short & i )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-gt-gt-4"><b>operator>></b></a> ( unsigned short & i )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-gt-gt-5"><b>operator>></b></a> ( signed int & i )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-gt-gt-6"><b>operator>></b></a> ( unsigned int & i )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-gt-gt-7"><b>operator>></b></a> ( signed long & i )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-gt-gt-8"><b>operator>></b></a> ( unsigned long & i )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-gt-gt-9"><b>operator>></b></a> ( float & f )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-gt-gt-a"><b>operator>></b></a> ( double & f )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-gt-gt-b"><b>operator>></b></a> ( char * s )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-gt-gt-c"><b>operator>></b></a> ( QString & str )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-gt-gt-d"><b>operator>></b></a> ( QCString & str )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-lt-lt"><b>operator<<</b></a> ( QChar c )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-lt-lt-2"><b>operator<<</b></a> ( char c )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-lt-lt-3"><b>operator<<</b></a> ( signed short i )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-lt-lt-4"><b>operator<<</b></a> ( unsigned short i )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-lt-lt-5"><b>operator<<</b></a> ( signed int i )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-lt-lt-6"><b>operator<<</b></a> ( unsigned int i )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-lt-lt-7"><b>operator<<</b></a> ( signed long i )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-lt-lt-8"><b>operator<<</b></a> ( unsigned long i )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-lt-lt-9"><b>operator<<</b></a> ( float f )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-lt-lt-a"><b>operator<<</b></a> ( double f )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-lt-lt-b"><b>operator<<</b></a> ( const char * s )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-lt-lt-c"><b>operator<<</b></a> ( const QString & s )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-lt-lt-d"><b>operator<<</b></a> ( const QCString & s )</div></li>
<li><div class=fn>QTextStream & <a href="#operator-lt-lt-e"><b>operator<<</b></a> ( void * ptr )</div></li>
<li><div class=fn>QTextStream & <a href="#readRawBytes"><b>readRawBytes</b></a> ( char * s, uint len )</div></li>
<li><div class=fn>QTextStream & <a href="#writeRawBytes"><b>writeRawBytes</b></a> ( const char * s, uint len )</div></li>
<li><div class=fn>QString <a href="#readLine"><b>readLine</b></a> ()</div></li>
<li><div class=fn>QString <a href="#read"><b>read</b></a> ()</div></li>
<li><div class=fn>void <a href="#skipWhiteSpace"><b>skipWhiteSpace</b></a> ()</div></li>
<li><div class=fn>int <a href="#flags"><b>flags</b></a> () const</div></li>
<li><div class=fn>int <a href="#flags-2"><b>flags</b></a> ( int f )</div></li>
<li><div class=fn>int <a href="#setf"><b>setf</b></a> ( int bits )</div></li>
<li><div class=fn>int <a href="#setf-2"><b>setf</b></a> ( int bits, int mask )</div></li>
<li><div class=fn>int <a href="#unsetf"><b>unsetf</b></a> ( int bits )</div></li>
<li><div class=fn>void <a href="#reset"><b>reset</b></a> ()</div></li>
<li><div class=fn>int <a href="#width"><b>width</b></a> () const</div></li>
<li><div class=fn>int <a href="#width-2"><b>width</b></a> ( int w )</div></li>
<li><div class=fn>int <a href="#fill"><b>fill</b></a> () const</div></li>
<li><div class=fn>int <a href="#fill-2"><b>fill</b></a> ( int f )</div></li>
<li><div class=fn>int <a href="#precision"><b>precision</b></a> () const</div></li>
<li><div class=fn>int <a href="#precision-2"><b>precision</b></a> ( int p )</div></li>
</ul>
<hr><a name="details"></a><h2>详细描述</h2>
<p> QTextStream类提供了使用<a href="qiodevice.html">QIODevice</a>读写文本的基本功能。
<p>
<p> 文本流类的功能界面和标准的C++的iostream类非常相似。iostream和QTextStream的不同点是我们的流操作在一个很容易被继承的QIODevice上,而iostream只能操作一个不能被继承的FILE *指针。
<p> Qt提供了几个和iostream相似的全局函数:
<ul>
<li> bin设置QTextStream来读/写二进制数字
<li> oct设置QTextStream来读/写八进制数字
<li> dec设置QTextStream来读/写十进制数字
<li> hex设置QTextStream来读/写十六进制数字
<li> endl强制换行
<li> flush强制QIODevice刷新任何被缓存的数据
<li> ws作为任何可用的控制符(在输入的时候)
<li> reset重新设置QTextStream为它的缺省模式(请见<a href="#reset">reset</a>())
<li> qSetW(int)设置<a href="#width">字段宽度</a>作为指定参数
<li> qSetFill(int)设置<a href="#fill">填充字符</a>作为指定参数
<li> qSetPrecision(int)设置<a href="#precision">精确度</a>作为指定参数
</ul>
<p> <b>警告:</b>默认情况下,QTextStream在读取流的时候,会自动地检测流中的数字是十进制、八进制、十六进制或者二进制格式。具体情况是,一个以“0”为开头的数字是八进制的,比如顺序为“0100”将会被解释为64。
<p> QTextStream类读写文本,它不适合处理二进制数据(而<a href="qdatastream.html">QDataStream</a>是适合的)。
<p> 默认情况下,输出的是使用本地8位编码后的Unicode文本(比如,<a href="qstring.html">QString</a>)。这些可以使用<a href="#setEncoding">setEncoding</a>()方法进行改变。对于输入,QTextStream会自动检测标准Unicode“字节顺序标记的”文本文件,否则会使用本地8位编码。
<p> <a href="qiodevice.html">QIODevice</a>在构造函数中被设置,或者之后在<a href="#setDevice">setDevice</a>()中使用。如果输入到达了<a href="#atEnd">atEnd</a>(),返回真。数据可以使用<a href="#operator-gt-gt">operator>></a>()重载操作符读到适当类型的变量中,或者使用<a href="#read">read</a>()把它作为整个部分读到一个单一的字符串中,或者使用<a href="#readLine">readLine</a>()把一次读一行。使用<a href="#skipWhiteSpace">skipWhiteSpace</a>()可以忽略控制符。你可以使用<a href="#flags">flags</a>()或<a href="#setf">setf</a>()来设置流的标记。这个流也支持<a href="#width">width</a>()、<a href="#precision">precision</a>()和 <a href="#fill">fill</a>(),使用<a href="#reset">reset</a>()可以重新恢复默认设置。
<p> <p>也可以参考<a href="qdatastream.html">QDataStream</a>、<a href="io.html">输入/输出和网络</a>和<a href="text.html">文本相关类</a>.
<hr><h2>成员类型文档</h2>
<h3 class=fn><a name="Encoding-enum"></a>QTextStream::Encoding</h3>
<ul>
<li><tt>QTextStream::Locale</tt>
<li><tt>QTextStream::Latin1</tt>
<li><tt>QTextStream::Unicode</tt>
<li><tt>QTextStream::UnicodeNetworkOrder</tt>
<li><tt>QTextStream::UnicodeReverse</tt>
<li><tt>QTextStream::RawUnicode</tt>
<li><tt>QTextStream::UnicodeUTF8</tt>
</ul><p>
<hr><h2>成员函数文档</h2>
<h3 class=fn><a name="QTextStream"></a>QTextStream::QTextStream ()
</h3>
构造一个没有IO设备的文本流。
<h3 class=fn><a name="QTextStream-2"></a>QTextStream::QTextStream ( <a href="qiodevice.html">QIODevice</a> * iod )
</h3>
构造一个使用<em>iod</em>IO设备的文本流。
<h3 class=fn><a name="QTextStream-3"></a>QTextStream::QTextStream ( <a href="qstring.html">QString</a> * str, int filemode )
</h3>
构造一个通过内部设备操作Unicode<a href="qstring.html">QString</a>的<em>str</em>的文本流。<em>filemode</em>参数会被传递给设备的open()函数,请参考<a href="qiodevice.html#mode">QIODevice::mode</a>()。
<p> 如果你使用<a href="#setEncoding">setEncoding</a>()或<a href="#setCodec">setCodec</a>()来设置一个编码或者编码器,当文本流在QString上操作时,这个设置将被忽略。
<p> 实例:
<pre>
<a href="qstring.html">QString</a> str;
QTextStream ts( &str, <a href="qfile.html#open">IO_WriteOnly</a> );
ts << "pi = " << 3.14; // str == "pi = 3.14"
</pre>
<p> 写数据到文本流将会修改字符串的内容。如果所写的内容超过字符串的范围,字符串会被扩大。注意字符串不会被截短。
<pre>
<a href="qstring.html">QString</a> str = "pi = 3.14";
QTextStream ts( &str, IO_WriteOnly );
ts << "2+2 = " << 2+2; // str == "2+2 = 414"
</pre>
<p> 注意因为QString是Unicode的,你不应该在这样的流上使用<a href="#readRawBytes">readRawBytes</a>()或<a href="#writeRawBytes">writeRawBytes</a>()。
<h3 class=fn><a name="QTextStream-4"></a>QTextStream::QTextStream ( <a href="qstring.html">QString</a> & str, int filemode )
</h3>
<p> <b>这个函数是废弃的。</b>它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。
<p> 这个构造函数和使用一个<a href="qstring.html">QString</a>*参数的构造函数一样。
<h3 class=fn><a name="QTextStream-5"></a>QTextStream::QTextStream ( <a href="qbytearray.html">QByteArray</a> a, int mode )
</h3>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -