﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-BigMonkey's new home-文章分类-C++语言</title><link>http://www.cppblog.com/panyuequn/category/3871.html</link><description>YueQun Pan's reflection</description><language>zh-cn</language><lastBuildDate>Tue, 20 May 2008 01:43:46 GMT</lastBuildDate><pubDate>Tue, 20 May 2008 01:43:46 GMT</pubDate><ttl>60</ttl><item><title>coding Group题目：压缩算法</title><link>http://www.cppblog.com/panyuequn/articles/20361.html</link><dc:creator>BigMonkey</dc:creator><author>BigMonkey</author><pubDate>Thu, 22 Mar 2007 07:04:00 GMT</pubDate><guid>http://www.cppblog.com/panyuequn/articles/20361.html</guid><wfw:comment>http://www.cppblog.com/panyuequn/comments/20361.html</wfw:comment><comments>http://www.cppblog.com/panyuequn/articles/20361.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/panyuequn/comments/commentRss/20361.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panyuequn/services/trackbacks/20361.html</trackback:ping><description><![CDATA[
		<p class="a" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-char-indent-count: 0; mso-pagination: widow-orphan; mso-list: l0 level1 lfo1" align="left">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #555555; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri">
						<span style="mso-list: Ignore">
								<span style="FONT: 7pt 'Times New Roman'">   </span>
						</span>
				</span>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">题目<span lang="EN-US">5</span>：</span>
				</b>
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">压缩算法</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #555555">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">题目说明：</span>
				</b>
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">试给出压缩算法，被压缩数据为</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #555555">
						<font face="宋体, MS Song">a,b,c</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">……</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #555555">
						<font face="宋体, MS Song">z</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">等</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #555555">
						<font face="宋体, MS Song">26</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">个英文字母随机出现的文本（每个字母出现的概率为</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #555555">
						<font face="宋体, MS Song">1/26</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">），计算出你设计的程序的平均压缩比</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #555555">
						<br />
						<font face="宋体, MS Song">  </font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">注意：原文本自己编写程序随机生成，要求大小</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #555555">
						<font face="宋体, MS Song">10K</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">以上</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #555555">
						<br />
						<font face="宋体, MS Song">  </font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">平均压缩比为</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #555555">
						<font face="宋体, MS Song">10</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">次结果的平均值（程序跑</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #555555">
						<font face="宋体, MS Song">10</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">次即可，当然，原始文本需要生成</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #555555">
						<font face="宋体, MS Song">10</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">次）<br />===================================================================================================================<br /><br />  本想用神经网络方法解决，但因为时间太紧肯定做不出来，即使作出来要训练，调整参数也很费时间。<br />  <br />  退而求其次，打算用huffman算法，结果一顿搜资料，又耽误了不少时间，再编写调试也来不及了，而且编的低效程序还不如不编。况且，前提是26个字母出现概率相同，huffman算法应该起不了很大作用。<br /><br /> 后来，我就只好用了最初级的，把字母重新编码，即把原来用八位保存的char改为5位保存的二进制数，直接把二进制写进文件。<br />代码如下，欢迎各位批判：<br /><br /><font color="#339933">头文件: compress.h</font><br /><br /><font color="#cc9966">#include&lt;iostream&gt;<br />#include&lt;fstream&gt;<br />#include&lt;sstream&gt;<br />#include&lt;string&gt;<br />#include&lt;cstdlib&gt;<br />#include&lt;ctime&gt;<br />#include&lt;map&gt;<br />#include&lt;cassert&gt;<br />#include&lt;bitset&gt;<br />using namespace std;</font></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">
						<font color="#cc9966">/*<br /> *本程序的思想是将26个字母进行重新编码，从00000到11001,则每个char类型可以只用5位就可以存放了，节省了3/8的空间<br /> *把该5位二进制以二进制形式存放到文件中，具体是每八位二进制把它转化为char类型，存放到压缩文件中<br /> */</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">
						<font color="#cc9966">class Compress{<br />public:<br /> Compress(string fileName):m_fileName(fileName){initMap();}<br /> void generRandomFile();<br /> void compressFile();<br /> void decompressFile();<br />public:</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">
						<font color="#cc9966">private:<br /> void initMap();  //初始化字母与编码的映射关系<br /> void getfile(string &amp;str, string fileName);  //一次读取整个普通文件并存放到str中<br /> void getBfile(string &amp;str, string fileName); //一次读取整个二进制文件并存放到str中<br /> char transToChar(string str);      //把string类型的二进制串转化为char类型<br /> void trans2Binary(char ch, string &amp;bin);  //把char类型的字符转化为它的二进制形式，存放到string类型中<br />private:<br />string m_fileName;   //存放要处理的文件名<br />map&lt;char, string&gt; m_alph2Binary;  //存放字母与编码的映射关系</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">
						<font color="#cc9966">};<br /></font>
						<br />
						<font color="#339933">头文件 compress.cpp：</font>
						<br />
						<font color="#999933">#include"compress.h"</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">
						<font color="#999933">//初始化字母与编码的映射表<br />void Compress::initMap()<br />{<br /> m_alph2Binary['a'] = "00000";<br /> m_alph2Binary['b'] = "00001";<br /> m_alph2Binary['c'] = "00010";<br /> m_alph2Binary['d'] = "00011";<br /> m_alph2Binary['e'] = "00100";<br /> m_alph2Binary['f'] = "00101";<br /> m_alph2Binary['g'] = "00110";<br /> m_alph2Binary['h'] = "00111";<br /> m_alph2Binary['i'] = "01000";<br /> m_alph2Binary['j'] = "01001";<br /> m_alph2Binary['k'] = "01010";<br /> m_alph2Binary['l'] = "01011";<br /> m_alph2Binary['m'] = "01100";<br /> m_alph2Binary['n'] = "01101";<br /> m_alph2Binary['o'] = "01110";<br /> m_alph2Binary['p'] = "01111";<br /> m_alph2Binary['q'] = "10000";<br /> m_alph2Binary['r'] = "10001";<br /> m_alph2Binary['s'] = "10010";<br /> m_alph2Binary['t'] = "10011";<br /> m_alph2Binary['u'] = "10100";<br /> m_alph2Binary['v'] = "10101";<br /> m_alph2Binary['w'] = "10110";<br /> m_alph2Binary['x'] = "10111";<br /> m_alph2Binary['y'] = "11000";<br /> m_alph2Binary['z'] = "11001";<br />}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">
						<font color="#999933">//产生随机字母组成的文件<br />void Compress::generRandomFile()<br />{<br />  <br />  string tmpname = "output/" + m_fileName+ ".txt"; <br />  m_fileName = tmpname;<br />  ofstream outfile(tmpname.c_str());<br />  <br />  string alphabet("abcdefghijklmnopqrstuvwxyz");<br />  srand((unsigned)time(NULL));    //设定随机数发生公式的种子值<br />  for(int i = 0; i &lt; 10000; i++)<br />  { <br />   int num = rand()%26;<br />   outfile &lt;&lt; alphabet[num];<br />  } <br />}</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">
						<font color="#999933">//压缩文件，压缩文件存放方式为.by后缀<br />void Compress::compressFile()<br />{<br /> string text;<br /> getfile(text , m_fileName);</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">
						<font color="#999933"> string binaryText = "";</font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">
						<font color="#999933"> string fileName = m_fileName + ".by";<br /> ofstream outfile(fileName.c_str(),ios_base::binary); </font>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
				<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">
						<font color="#999933"> for(int i = 0; i &lt; text.size(); i++)<br /> {<br />  if(m_alph2Binary.count(text[i]))<br />  {<br />   binaryText += m_alph2Binary[text[i]];<br />  }<br />  else<br />  {<br />   cerr &lt;&lt; "wrong!" &lt;&lt; endl;<br />  }<br /> }</font>
				</span>
		</p>
		<span style="FONT-SIZE: 9pt; COLOR: #555555; FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
						<br />
						<font color="#999933"> for(int i = 0; i &lt; binaryText.size(); i += 8)<br /> {<br />  char newch = transToChar(binaryText.substr(i, 8));<br />  outfile &lt;&lt; newch;<br /> }<br /> outfile.close(); <br />}</font>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
						<br />
						<font color="#999933">//读取文件，一次把整个文件读到string类型中去<br />void Compress::getfile(string &amp;str, string fileName)<br />{</font>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
						<font color="#999933"> ifstream infile(fileName.c_str());<br /> assert(infile.is_open());<br /> istreambuf_iterator&lt;char&gt; beg(infile), end;<br /> string stri(beg, end);<br /> str = stri;<br />}</font>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
						<br />
						<font color="#999933">//读取二进制文件，并存放到二进制文件中去<br />void Compress::getBfile(string &amp;str, string fileName)<br />{<br /> ifstream infile(fileName.c_str(), ios_base::binary);<br /> assert(infile.is_open());<br /> istreambuf_iterator&lt;char&gt; beg(infile), end;<br /> string stri(beg, end);<br /> str = stri;<br />}</font>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
						<br />
						<font color="#999933">//把8位二进制转化为char类型<br />char Compress::transToChar(string str)<br />{<br /> char result = 0x00;<br /> char value = 0x1;<br /> for(int i = 7; i &gt;= 0; i--)<br /> {<br />  if(str[i] == '1')<br />  {<br />   result += value;<br />  }<br />  value *= 2;<br /> }<br /> return result;<br />}<br /> <br />//解压文件，在原文件后加后缀.by<br />void Compress::decompressFile()<br />{<br /> string fileName = m_fileName + ".by";<br /> ifstream infile(fileName.c_str(), ios_base::binary);<br /> assert(infile.is_open());<br /> string text;<br /> string binaryText;<br /> string origText = "";<br /> string tmp;<br /> getBfile(text, fileName);<br /> for(int i= 0; i &lt; text.size(); i++)<br /> {<br />  trans2Binary(text[i], tmp);   //把压缩文件每个char转化为string类型的二进制形式<br />  binaryText += tmp;<br /> }</font>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
						<font color="#999933"> map&lt;string, char&gt; bin2Char;<br /> map&lt;char, string&gt;::iterator beg = m_alph2Binary.begin();<br /> while(beg != m_alph2Binary.end())<br /> {  <br />  bin2Char.insert(pair&lt;string, char&gt;(beg-&gt;second, beg-&gt;first));<br />  beg++;<br /> }</font>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
						<font color="#999933"> for(int i = 0; i &lt; binaryText.size(); i += 5)   //把string类型的二进制进行还原，每5位一组，反映射到原字母上去<br /> {<br />  if(bin2Char.count(binaryText.substr(i, 5)))<br />  {<br />   origText += bin2Char[binaryText.substr(i, 5)];<br />  }<br />  else<br />   cerr &lt;&lt; "wrong!" &lt;&lt; endl;</font>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
						<font color="#999933"> }</font>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
						<font color="#999933"> fileName += ".og";<br /> ofstream outfile(fileName.c_str());   //输出解压前的文件<br /> outfile &lt;&lt; origText;</font>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
						<font color="#999933">}</font>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
						<font color="#999933">//把压缩文件中的char类型转化成string类型的二进制形式<br />void Compress::trans2Binary(char ch, string &amp;bin)<br />{<br /> unsigned long ll = ch;<br /> bitset&lt;8&gt; bs(ll);<br /> ostringstream os;<br /> os &lt;&lt; bs; <br /> bin = os.str(); <br />}<br /><br /></font>
						<font color="#009900">主文件main.cpp：<br /></font>
						<font color="#990000">#include"compress.h"</font>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
						<font color="#990000">
						</font> </p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
						<font color="#990000">void main()<br />{<br /> string fileName;<br /> cout &lt;&lt; "please enter the name of the file" &lt;&lt; endl;<br /> cin &gt;&gt; fileName;</font>
				</p>
				<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align="left">
						<font color="#990000"> Compress compress(fileName);  //新建压缩类<br /> compress.generRandomFile();  //产生随机文件<br /> compress.compressFile();   //压缩文件<br /> compress.decompressFile(); //解压文件<br />}<br /></font>
						<br />
				</p>
		</span>
<img src ="http://www.cppblog.com/panyuequn/aggbug/20361.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panyuequn/" target="_blank">BigMonkey</a> 2007-03-22 15:04 <a href="http://www.cppblog.com/panyuequn/articles/20361.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>