?? qtextstream.html
字號(hào):
<!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">函數(shù)</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">詳情請(qǐng)見……</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">所有成員函數(shù)的列表。</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>詳細(xì)描述</h2>
<p> QTextStream類提供了使用<a href="qiodevice.html">QIODevice</a>讀寫文本的基本功能。
<p>
<p> 文本流類的功能界面和標(biāo)準(zhǔn)的C++的iostream類非常相似。iostream和QTextStream的不同點(diǎn)是我們的流操作在一個(gè)很容易被繼承的QIODevice上,而iostream只能操作一個(gè)不能被繼承的FILE *指針。
<p> Qt提供了幾個(gè)和iostream相似的全局函數(shù):
<ul>
<li> bin設(shè)置QTextStream來讀/寫二進(jìn)制數(shù)字
<li> oct設(shè)置QTextStream來讀/寫八進(jìn)制數(shù)字
<li> dec設(shè)置QTextStream來讀/寫十進(jìn)制數(shù)字
<li> hex設(shè)置QTextStream來讀/寫十六進(jìn)制數(shù)字
<li> endl強(qiáng)制換行
<li> flush強(qiáng)制QIODevice刷新任何被緩存的數(shù)據(jù)
<li> ws作為任何可用的控制符(在輸入的時(shí)候)
<li> reset重新設(shè)置QTextStream為它的缺省模式(請(qǐng)見<a href="#reset">reset</a>())
<li> qSetW(int)設(shè)置<a href="#width">字段寬度</a>作為指定參數(shù)
<li> qSetFill(int)設(shè)置<a href="#fill">填充字符</a>作為指定參數(shù)
<li> qSetPrecision(int)設(shè)置<a href="#precision">精確度</a>作為指定參數(shù)
</ul>
<p> <b>警告:</b>默認(rèn)情況下,QTextStream在讀取流的時(shí)候,會(huì)自動(dòng)地檢測(cè)流中的數(shù)字是十進(jìn)制、八進(jìn)制、十六進(jìn)制或者二進(jìn)制格式。具體情況是,一個(gè)以“0”為開頭的數(shù)字是八進(jìn)制的,比如順序?yàn)椤?100”將會(huì)被解釋為64。
<p> QTextStream類讀寫文本,它不適合處理二進(jìn)制數(shù)據(jù)(而<a href="qdatastream.html">QDataStream</a>是適合的)。
<p> 默認(rèn)情況下,輸出的是使用本地8位編碼后的Unicode文本(比如,<a href="qstring.html">QString</a>)。這些可以使用<a href="#setEncoding">setEncoding</a>()方法進(jìn)行改變。對(duì)于輸入,QTextStream會(huì)自動(dòng)檢測(cè)標(biāo)準(zhǔn)Unicode“字節(jié)順序標(biāo)記的”文本文件,否則會(huì)使用本地8位編碼。
<p> <a href="qiodevice.html">QIODevice</a>在構(gòu)造函數(shù)中被設(shè)置,或者之后在<a href="#setDevice">setDevice</a>()中使用。如果輸入到達(dá)了<a href="#atEnd">atEnd</a>(),返回真。數(shù)據(jù)可以使用<a href="#operator-gt-gt">operator>></a>()重載操作符讀到適當(dāng)類型的變量中,或者使用<a href="#read">read</a>()把它作為整個(gè)部分讀到一個(gè)單一的字符串中,或者使用<a href="#readLine">readLine</a>()把一次讀一行。使用<a href="#skipWhiteSpace">skipWhiteSpace</a>()可以忽略控制符。你可以使用<a href="#flags">flags</a>()或<a href="#setf">setf</a>()來設(shè)置流的標(biāo)記。這個(gè)流也支持<a href="#width">width</a>()、<a href="#precision">precision</a>()和 <a href="#fill">fill</a>(),使用<a href="#reset">reset</a>()可以重新恢復(fù)默認(rèn)設(shè)置。
<p> <p>也可以參考<a href="qdatastream.html">QDataStream</a>、<a href="io.html">輸入/輸出和網(wǎng)絡(luò)</a>和<a href="text.html">文本相關(guān)類</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>成員函數(shù)文檔</h2>
<h3 class=fn><a name="QTextStream"></a>QTextStream::QTextStream ()
</h3>
構(gòu)造一個(gè)沒有IO設(shè)備的文本流。
<h3 class=fn><a name="QTextStream-2"></a>QTextStream::QTextStream ( <a href="qiodevice.html">QIODevice</a> * iod )
</h3>
構(gòu)造一個(gè)使用<em>iod</em>IO設(shè)備的文本流。
<h3 class=fn><a name="QTextStream-3"></a>QTextStream::QTextStream ( <a href="qstring.html">QString</a> * str, int filemode )
</h3>
構(gòu)造一個(gè)通過內(nèi)部設(shè)備操作Unicode<a href="qstring.html">QString</a>的<em>str</em>的文本流。<em>filemode</em>參數(shù)會(huì)被傳遞給設(shè)備的open()函數(shù),請(qǐng)參考<a href="qiodevice.html#mode">QIODevice::mode</a>()。
<p> 如果你使用<a href="#setEncoding">setEncoding</a>()或<a href="#setCodec">setCodec</a>()來設(shè)置一個(gè)編碼或者編碼器,當(dāng)文本流在QString上操作時(shí),這個(gè)設(shè)置將被忽略。
<p> 實(shí)例:
<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> 寫數(shù)據(jù)到文本流將會(huì)修改字符串的內(nèi)容。如果所寫的內(nèi)容超過字符串的范圍,字符串會(huì)被擴(kuò)大。注意字符串不會(huì)被截短。
<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> 注意因?yàn)镼String是Unicode的,你不應(yīng)該在這樣的流上使用<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>這個(gè)函數(shù)是廢棄的。</b>它的提供只是為了保證舊代碼能夠工作。我們強(qiáng)烈建議在新代碼中不要使用它。
<p> 這個(gè)構(gòu)造函數(shù)和使用一個(gè)<a href="qstring.html">QString</a>*參數(shù)的構(gòu)造函數(shù)一樣。
<h3 class=fn><a name="QTextStream-5"></a>QTextStream::QTextStream ( <a href="qbytearray.html">QByteArray</a> a, int mode )
</h3>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -