?? 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 + -