﻿<?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++博客-Cpper-随笔分类-杂项</title><link>http://www.cppblog.com/gaimor/category/14409.html</link><description>C/C++高级工程师
Android高级软件工程师
IT集成工程师
音频工程师
熟悉c,c++,java,c#,py,js,asp等多种语言
程序猿</description><language>zh-cn</language><lastBuildDate>Tue, 26 Jun 2018 17:37:00 GMT</lastBuildDate><pubDate>Tue, 26 Jun 2018 17:37:00 GMT</pubDate><ttl>60</ttl><item><title>自己做的股票量化软件 -蜗牛股票量化分析软件</title><link>http://www.cppblog.com/gaimor/archive/2018/06/25/215745.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Mon, 25 Jun 2018 13:32:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2018/06/25/215745.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/215745.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2018/06/25/215745.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/215745.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/215745.html</trackback:ping><description><![CDATA[<div>使用Qt开发的，具体涉及QNetwork/Qjson/QChart等各个Qt模块</div><div></div><div>软件支持日线，分时，周线，月线等不同周期的混合量化分析；支持选股和回测二个模式；支持K线识别；支持常见的10多种技术指标；</div><div></div><div>同时还支持基于LEVEL2的资金流分析和查看。</div><div></div><div>为了方便使用，我还自行开发了一套脚本解释系统</div><div>一个macd金叉死叉的量化脚本如下:</div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#设置K线文件目录<br />config.source.k.dir=data<br />#设置分笔数据文件目录<br />config.source.ticket.dir=ticket<br />#设置level2文件路径<br />config.source.lv2.dir=lv2<br />#设置K线数据格式<br />config.source.k.format=default<br />#设置分时最大加载日期数<br />source.ticket.maxtickloaded=5<br />#设置小单最大额度<br />config.source.lv2.v1=5<br />#设置中单最大额度<br />config.source.lv2.v2=100<br />#设置大单最大额度,超过此数值则为超大单<br />config.source.lv2.v3=500<br />#定义单日股票买入排序,默认为成交量降序(可选volasc,increaseasc,increasedesc)<br />config.trade.buy.order=voldesc<br />#定义股票买入时机,默认为开盘(可选open/auto)<br />config.trade.buy.point=open<br />#定义股票卖出时机,默认为尾盘(可选第二天开盘价-早盘)<br />config.trade.sale.point=close<br />#是否使用立即止盈模式,达到设定盈利立刻卖出<br />config.trade.sale.rapid=yes<br />#设置单股最大持有日期<br />config.trade.max.hold.day=3<br />#设定单股买入后再次买入禁买日期间隔<br />config.trade.min.exclude=6<br />#设置止盈点<br />config.trade.max.profit=64.0<br />#设定止损点<br />config.trade.max.lost=-9.0<br />#设定交易成本(千分之.)<br />config.trade.tradecost=0.8<br />#设定单日最大可买股票数<br />config.trade.max.count=3<br />#设定股票买入最大允许涨幅<br />config.trade.max.allow.increase=3.2<br />#设定股票买入最大允许跌幅<br />config.trade.max.allow.decrease=-3.2<br />buy.macd.diff,0&gt;macd.dea,0<br />buy.macd.diff,-1</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">macd</span><span style="color: #FF0000; ">.dea,-1<br />buy.macd.diff,0</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">value,0.0<br />buy.ohlc.increase,0&gt;value,0.5</span></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; "><br /></span></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">很容易理解吧<br /></span></div></div> <div><img src="http://www.cppblog.com/images/cppblog_com/gaimor/snail2.png" alt="" width="656" height="456" /></div><div>有兴趣可以在www.snail007.com下载使用</div><img src ="http://www.cppblog.com/gaimor/aggbug/215745.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2018-06-25 21:32 <a href="http://www.cppblog.com/gaimor/archive/2018/06/25/215745.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MACD计算代码</title><link>http://www.cppblog.com/gaimor/archive/2016/08/30/214240.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Tue, 30 Aug 2016 06:45:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2016/08/30/214240.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/214240.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2016/08/30/214240.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/214240.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/214240.html</trackback:ping><description><![CDATA[MACD计算代码 <br />参数设置为12,23.9<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">struct</span><span style="color: #000000; ">&nbsp;Macd<br />{<br />&nbsp;&nbsp;&nbsp;Macd():m12(</span><span style="color: #000000; ">0.0f</span><span style="color: #000000; ">),m26(</span><span style="color: #000000; ">0.0f</span><span style="color: #000000; ">),diff(</span><span style="color: #000000; ">0.0f</span><span style="color: #000000; ">),dea(</span><span style="color: #000000; ">0.0f</span><span style="color: #000000; ">),bar(</span><span style="color: #000000; ">0.0f</span><span style="color: #000000; ">),index(</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">){}<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">float</span><span style="color: #000000; ">&nbsp;m12;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">float</span><span style="color: #000000; ">&nbsp;m26;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">float</span><span style="color: #000000; ">&nbsp;diff;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">float</span><span style="color: #000000; ">&nbsp;dea;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">float</span><span style="color: #000000; ">&nbsp;bar;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;index;<br /><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;update(</span><span style="color: #0000FF; ">float</span><span style="color: #000000; ">&nbsp;value)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(index&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m12&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;value;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m26&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;value;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m12&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;m12&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;(value&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;m12)&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">2.0f</span><span style="color: #000000; ">/</span><span style="color: #000000; ">13.0f</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m26&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;m26&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;(value&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;m26)&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">2.0f</span><span style="color: #000000; ">/</span><span style="color: #000000; ">27.0f</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;diff&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;m12&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;m26;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(index&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dea&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0.2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">diff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dea&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;dea</span><span style="color: #000000; ">*</span><span style="color: #000000; ">0.8</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;diff</span><span style="color: #000000; ">*</span><span style="color: #000000; ">0.2</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bar&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">2</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #000000; ">-</span><span style="color: #000000; ">dea&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;diff);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">diff</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">dea</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">bar</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">std::endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />};</span></div>炒股的同学可以加入蜗牛选股群:297919841 验证码为来自博客园 <img src ="http://www.cppblog.com/gaimor/aggbug/214240.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2016-08-30 14:45 <a href="http://www.cppblog.com/gaimor/archive/2016/08/30/214240.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>新做一个选股软件计算力惊人</title><link>http://www.cppblog.com/gaimor/archive/2016/05/09/213467.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Mon, 09 May 2016 09:30:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2016/05/09/213467.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/213467.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2016/05/09/213467.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/213467.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/213467.html</trackback:ping><description><![CDATA[新做一个选股软件 计算力惊人<br />一次可分析1400多股，3天涨幅远超泸深300<br />涨幅为6.8<br />同期泸深为-3.5<br />每日开盘自动邮件推送选股<br />想要的可以加群 蜗牛群:297919841<br />ps:本人不是卖软件的的！<br />每日数据在这里www.snail007.com/blog<img src ="http://www.cppblog.com/gaimor/aggbug/213467.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2016-05-09 17:30 <a href="http://www.cppblog.com/gaimor/archive/2016/05/09/213467.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用libcurl上传文件到sftp服务器</title><link>http://www.cppblog.com/gaimor/archive/2015/08/31/211729.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Mon, 31 Aug 2015 09:21:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2015/08/31/211729.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/211729.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2015/08/31/211729.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/211729.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/211729.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #800000;">本来打算使用QFtp，居然上传不成功<br /><br />#include&nbsp;&lt;stdio.h&gt;<br />#include&nbsp;&lt;string.h&gt;<br />#include&nbsp;&lt;curl/curl.h&gt;<br />#include&nbsp;&lt;sys/types.h&gt;<br />#include&nbsp;&lt;sys/stat.h&gt;<br />#include&nbsp;&lt;fcntl.h&gt;<br />#include&nbsp;&lt;errno.h&gt;<br />#ifdef&nbsp;WIN32<br />#include&nbsp;&lt;io.h&gt;<br />#else<br />#include&nbsp;&lt;unistd.h&gt;<br />#endif<br /><br />#define&nbsp;REMOTE_URL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"sftp://account:password@xx.xx.xx.xx/"<br /><br />static&nbsp;size_t&nbsp;read_callback(void&nbsp;*ptr,&nbsp;size_t&nbsp;size,&nbsp;size_t&nbsp;nmemb,&nbsp;void&nbsp;*stream)<br /></span><span style="color: #000000; ">{</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;curl_off_t&nbsp;nread;<br />&nbsp;&nbsp;&nbsp;&nbsp;size_t&nbsp;retcode&nbsp;=&nbsp;fread(ptr,&nbsp;size,&nbsp;nmemb,&nbsp;stream);<br />&nbsp;&nbsp;&nbsp;&nbsp;nread&nbsp;=&nbsp;(curl_off_t)retcode;<br />&nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr,&nbsp;"***&nbsp;We&nbsp;read&nbsp;%"&nbsp;CURL_FORMAT_CURL_OFF_T&nbsp;"&nbsp;bytes&nbsp;from&nbsp;file\n",&nbsp;nread);<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;retcode;<br /></span><span style="color: #000000; ">}</span><span style="color: #800000; "><br /><br />int&nbsp;main(int&nbsp;argc,char&nbsp;*argv[])<br /></span><span style="color: #000000; ">{</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;if(argc&nbsp;!=&nbsp;3)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("2&nbsp;paramenters&nbsp;is&nbsp;needed.\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-1;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">}</span><span style="color: #800000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;char*&nbsp;local_file&nbsp;=&nbsp;argv[1];<br />&nbsp;&nbsp;&nbsp;&nbsp;char*&nbsp;remote_file&nbsp;=&nbsp;argv[2];<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;printf("call&nbsp;me&nbsp;for&nbsp;update&nbsp;-:%s,%s\n",local_file,remote_file);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;remoteurl[1024]&nbsp;=&nbsp;</span><span style="color: #000000; ">{</span><span style="color: #FF0000; ">0</span><span style="color: #000000; ">}</span><span style="color: #800000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;strcpy(remoteurl,REMOTE_URL);<br />&nbsp;&nbsp;&nbsp;&nbsp;strcat(remoteurl,remote_file);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;CURL*&nbsp;curl;<br />&nbsp;&nbsp;&nbsp;&nbsp;CURLcode&nbsp;res;<br />&nbsp;&nbsp;&nbsp;&nbsp;FILE*&nbsp;file;<br />&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;stat&nbsp;file_info;<br />&nbsp;&nbsp;&nbsp;&nbsp;curl_off_t&nbsp;fsize;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if(stat(local_file,&amp;file_info))<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">{</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("couldnt&nbsp;open&nbsp;'%s'</span><span style="color: #000000; ">:</span><span style="color: #0000FF; ">&nbsp;%s\n",&nbsp;local_file,&nbsp;strerror(errno))</span><span style="color: #000000; ">;</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">}</span><span style="color: #800000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;fsize&nbsp;=&nbsp;(curl_off_t)file_info.st_size;<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Local&nbsp;file&nbsp;size:&nbsp;%"&nbsp;CURL_FORMAT_CURL_OFF_T&nbsp;"&nbsp;bytes.\n",&nbsp;fsize);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;file&nbsp;=&nbsp;fopen(local_file,&nbsp;"rb");<br />&nbsp;&nbsp;&nbsp;&nbsp;curl_global_init(CURL_GLOBAL_ALL);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;curl&nbsp;=&nbsp;curl_easy_init();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if(curl)<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">{</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_easy_setopt(curl,CURLOPT_READFUNCTION,read_callback);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_easy_setopt(curl,CURLOPT_UPLOAD,1L);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_easy_setopt(curl,CURLOPT_URL,remoteurl);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_easy_setopt(curl,CURLOPT_READDATA,file);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_easy_setopt(curl,CURLOPT_INFILESIZE_LARGE,(curl_off_t)fsize);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_easy_setopt(curl,CURLOPT_FTP_RESPONSE_TIMEOUT,120);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res&nbsp;=&nbsp;curl_easy_perform(curl);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(res&nbsp;!=&nbsp;CURLE_OK)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr,"curl_easy_perform()&nbsp;failed</span><span style="color: #000000; ">:</span><span style="color: #0000FF; ">&nbsp;%s\n",curl_easy_strerror(res))</span><span style="color: #000000; ">;</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_easy_cleanup(curl);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr,"finished&nbsp;update.");<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">}</span><span style="color: #800000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;fclose(file);<br />&nbsp;&nbsp;&nbsp;&nbsp;curl_global_cleanup();<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />}<br /><br />以上代码经过实际测试.<br /></span></div><img src ="http://www.cppblog.com/gaimor/aggbug/211729.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2015-08-31 17:21 <a href="http://www.cppblog.com/gaimor/archive/2015/08/31/211729.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ms server插入数据库返回自动生成ID的C#例子</title><link>http://www.cppblog.com/gaimor/archive/2015/07/29/211407.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Wed, 29 Jul 2015 08:29:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2015/07/29/211407.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/211407.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2015/07/29/211407.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/211407.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/211407.html</trackback:ping><description><![CDATA[<div>&nbsp;如下:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cppblog.com/Images/dot.gif"  alt="" /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">',N'</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;desc1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">',N'</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;desc2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">',N'</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;desc3;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">');select&nbsp;@@identity;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OleDbConnection&nbsp;conn&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;getOleDbConntion();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OleDbCommand&nbsp;cmd&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;OleDbCommand(sql,&nbsp;conn);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.Open();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OleDbDataReader&nbsp;reader&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;cmd.ExecuteReader();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.Read();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;index&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;reader.GetValue(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">).ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.Close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;index;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div><br /> </div><img src ="http://www.cppblog.com/gaimor/aggbug/211407.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2015-07-29 16:29 <a href="http://www.cppblog.com/gaimor/archive/2015/07/29/211407.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js显示2015-07-10 12:24:03时间格式</title><link>http://www.cppblog.com/gaimor/archive/2015/07/13/211250.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Mon, 13 Jul 2015 08:48:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2015/07/13/211250.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/211250.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2015/07/13/211250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/211250.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/211250.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date.prototype.format&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(format)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;args&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">M+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">:&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getMonth()&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">d+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">:&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getDate(),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">h+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">:&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getHours(),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">m+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">:&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getMinutes(),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">s+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">:&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getSeconds(),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">q+</span><span style="color: #000000; ">"</span><span style="color: #000000; ">:&nbsp;Math.floor((</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getMonth()&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">3</span><span style="color: #000000; ">)&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">3</span><span style="color: #000000; ">),&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">S</span><span style="color: #000000; ">"</span><span style="color: #000000; ">:&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getMilliseconds()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #000000; ">/</span><span style="color: #000000; ">(y</span><span style="color: #000000; ">+</span><span style="color: #000000; ">)</span><span style="color: #000000; ">/</span><span style="color: #000000; ">.test(format))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;format&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;format.replace(RegExp.$</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getFullYear()&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">""</span><span style="color: #000000; ">).substr(</span><span style="color: #000000; ">4</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;RegExp.$</span><span style="color: #000000; ">1</span><span style="color: #000000; ">.length));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #0000FF; ">in</span><span style="color: #000000; ">&nbsp;args)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;n&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;args[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;RegExp(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)</span><span style="color: #000000; ">"</span><span style="color: #000000; ">).test(format))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;format&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;format.replace(RegExp.$</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;RegExp.$</span><span style="color: #000000; ">1</span><span style="color: #000000; ">.length&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">?</span><span style="color: #000000; ">&nbsp;n&nbsp;:&nbsp;(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">00</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;n).substr((</span><span style="color: #000000; ">""</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;n).length));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;format;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}; <br /></span></div><img src ="http://www.cppblog.com/gaimor/aggbug/211250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2015-07-13 16:48 <a href="http://www.cppblog.com/gaimor/archive/2015/07/13/211250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2014年软件开发计划</title><link>http://www.cppblog.com/gaimor/archive/2014/06/09/207236.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Mon, 09 Jun 2014 13:13:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2014/06/09/207236.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/207236.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2014/06/09/207236.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/207236.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/207236.html</trackback:ping><description><![CDATA[一直想做个类似matlab的软件，支持矩阵运算，线代，微积分求解等功能<br />大家有啥好的建议没？<br /><br />去年业余主要开发了<a href="http://www.cppblog.com/gaimor/archive/2013/07/11/201711.html">GAudio</a><br />今年开发了<a href="http://huatuozhongyao.com/forum/forum.php">华佗中药大师业余版本</a>，马上就要出入门版本咯<br /><br />一直想靠写软件发财<img src ="http://www.cppblog.com/gaimor/aggbug/207236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2014-06-09 21:13 <a href="http://www.cppblog.com/gaimor/archive/2014/06/09/207236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C语言调用python脚本3</title><link>http://www.cppblog.com/gaimor/archive/2013/12/07/204649.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Sat, 07 Dec 2013 07:48:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2013/12/07/204649.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/204649.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2013/12/07/204649.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/204649.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/204649.html</trackback:ping><description><![CDATA[脚本如下:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">from&nbsp;bs4&nbsp;import&nbsp;BeautifulSoup<br /><br />def&nbsp;list_get(file):<br />&nbsp;&nbsp;&nbsp;&nbsp;soup&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;BeautifulSoup(open(file))<br />&nbsp;&nbsp;&nbsp;&nbsp;alist&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;soup.find_all(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">a</span><span style="color: #000000; ">'</span><span style="color: #000000; ">,class_&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">link</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;list&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[]<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #0000FF; ">in</span><span style="color: #000000; ">&nbsp;alist:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.append(i.</span><span style="color: #0000FF; ">get</span><span style="color: #000000; ">(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">href</span><span style="color: #000000; ">'</span><span style="color: #000000; ">));<br />&nbsp;&nbsp;&nbsp;&nbsp;#</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #0000FF; ">in</span><span style="color: #000000; ">&nbsp;list:<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;print(i)<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;list<br /><br /></span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;__name__</span><span style="color: #000000; ">==</span><span style="color: #000000; ">"</span><span style="color: #000000; ">__main__</span><span style="color: #000000; ">"</span><span style="color: #000000; ">:<br />&nbsp;&nbsp;&nbsp;&nbsp;list_get(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">List.htm</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)</span></div><br />list_get函数返回的是list字符串对象<br />其c语言调用的代码如下:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdlib.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">Python.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;GDALPythonObjectToCStr(PyObject</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;pyObject);<br /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;argc,&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">argv[])<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Py_Initialize();&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">Py_IsInitialized())&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;PyRun_SimpleString(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">import&nbsp;sys</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;PyRun_SimpleString(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">sys.path.append('./script')</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;PyObject</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;pModule;<br />&nbsp;&nbsp;&nbsp;&nbsp;PyObject</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;pDict;<br />&nbsp;&nbsp;&nbsp;&nbsp;PyObject</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;pFunc;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;pModule&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PyImport_ImportModule(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">list</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">pModule)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">can't&nbsp;find&nbsp;list.py</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">PAUSE</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;pDict&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PyModule_GetDict(pModule);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">pDict)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;pFunc&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PyDict_GetItemString(pDict,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">list_get</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">pFunc&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">!</span><span style="color: #000000; ">PyCallable_Check(pFunc))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">can't&nbsp;find&nbsp;function&nbsp;[list_get]</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;PyObject</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;args&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PyTuple_New(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;PyTuple_SetItem(args,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,Py_BuildValue(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">s</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">List.htm</span><span style="color: #000000; ">"</span><span style="color: #000000; ">));<br />&nbsp;&nbsp;&nbsp;&nbsp;PyObject</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;value&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PyObject_CallObject(pFunc,args);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;ret&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PySequence_Check(value);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">check:%d\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,ret);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;length&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PySequence_Size(value);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">length:%d\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,length);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">length;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PyObject</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;obj&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PySequence_GetItem(value,i);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">char*&nbsp;str&nbsp;=&nbsp;PyBytes_AS_STRING(obj);</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;str&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;GDALPythonObjectToCStr(obj);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">link:%s\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,str);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;free(str);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Py_DECREF(args);<br />&nbsp;&nbsp;&nbsp;&nbsp;Py_DECREF(pModule);<br />&nbsp;&nbsp;&nbsp;&nbsp;Py_Finalize();&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">PAUSE</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />}<br /><br /></span><span style="color: #008000; ">/*</span><span style="color: #008000; ">&nbsp;Return&nbsp;a&nbsp;NULL&nbsp;terminated&nbsp;c&nbsp;String&nbsp;from&nbsp;a&nbsp;PyObject&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br /></span><span style="color: #008000; ">/*</span><span style="color: #008000; ">&nbsp;Result&nbsp;must&nbsp;be&nbsp;freed&nbsp;with&nbsp;GDALPythonFreeCStr&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;GDALPythonObjectToCStr(PyObject</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;pyObject)<br />{<br /></span><span style="color: #0000FF; ">#if</span><span style="color: #000000; ">&nbsp;PY_VERSION_HEX&nbsp;&gt;=&nbsp;0x03000000</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(PyUnicode_Check(pyObject))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">pszStr;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">pszNewStr;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Py_ssize_t&nbsp;nLen;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PyObject</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;pyUTF8Str&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PyUnicode_AsUTF8String(pyObject);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PyBytes_AsStringAndSize(pyUTF8Str,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">pszStr,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">nLen);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pszNewStr&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)malloc(nLen</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(pszNewStr,pszStr,nLen</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Py_XDECREF(pyUTF8Str);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;pszNewStr;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(PyBytes_Check(pyObject))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">pszStr;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">pszNewStr;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Py_ssize_t&nbsp;nLen;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PyBytes_AsStringAndSize(pyObject,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">pszStr,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">nLen);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pszNewStr&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)malloc(nLen</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(pszNewStr,pszStr,nLen</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;pszNewStr;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">pszStr&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)malloc(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pszStr[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">\0</span><span style="color: #000000; ">'</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;pszStr;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #0000FF; ">#else</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;PyString_AsString(pyObject);<br /></span><span style="color: #0000FF; ">#endif</span><span style="color: #000000; "><br />}<br /></span></div><img src ="http://www.cppblog.com/gaimor/aggbug/204649.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2013-12-07 15:48 <a href="http://www.cppblog.com/gaimor/archive/2013/12/07/204649.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#使用c语言编写dll的例子</title><link>http://www.cppblog.com/gaimor/archive/2013/09/13/203225.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Fri, 13 Sep 2013 12:55:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2013/09/13/203225.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/203225.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2013/09/13/203225.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/203225.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/203225.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 之前写了一个dll，具体在这里http://www.cppblog.com/gaimor/anarchive/2013/07/11/201711.html现在想增加一个c#绑定,上网搜了下很简单就实现了实现后的cs代码如下(当前只实现了一部分):Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.Co...&nbsp;&nbsp;<a href='http://www.cppblog.com/gaimor/archive/2013/09/13/203225.html'>阅读全文</a><img src ="http://www.cppblog.com/gaimor/aggbug/203225.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2013-09-13 20:55 <a href="http://www.cppblog.com/gaimor/archive/2013/09/13/203225.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用libao+mpeg123播放mp3的例子</title><link>http://www.cppblog.com/gaimor/archive/2013/08/04/202333.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Sun, 04 Aug 2013 04:12:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2013/08/04/202333.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/202333.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2013/08/04/202333.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/202333.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/202333.html</trackback:ping><description><![CDATA[直接上代码:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">ao</span><span style="color: #000000; ">/</span><span style="color: #000000; ">ao.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">mpg123.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;argc,&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">argv[])<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ao_initialize();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;mpg123_handle&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">mpg123&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;iMpg123_error;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(MPG123_OK&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;(iMpg123_error&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;mpg123_init()))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">failed&nbsp;to&nbsp;init&nbsp;mpg123\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;mpg123&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;mpg123_new(mpg123_decoders()[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">],&nbsp;</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">iMpg123_error);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(MPG123_OK&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;(iMpg123_error&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;mpg123_open(mpg123,argv[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">])))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">error&nbsp;in&nbsp;open&nbsp;mp3&nbsp;file\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;rate,channel,encoding;<br />&nbsp;&nbsp;&nbsp;&nbsp;mpg123_getformat(mpg123,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">rate,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">channel,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">encoding);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp; </span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;default_driver&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;ao_default_driver_id();<br />&nbsp;&nbsp;&nbsp;&nbsp;ao_sample_format&nbsp;format;<br />&nbsp;&nbsp;&nbsp;&nbsp;memset(</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">format,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(format));<br />&nbsp;&nbsp;&nbsp;&nbsp;format.bits&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">16</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;format.channels&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;channel;<br />&nbsp;&nbsp;&nbsp;&nbsp;format.rate&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;rate;<br />&nbsp;&nbsp;&nbsp;&nbsp;format.byte_format&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;AO_FMT_LITTLE;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ao_device&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">device;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;device&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;ao_open_live(default_driver,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">format,NULL);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(device&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;NULL)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">error&nbsp;opening&nbsp;device.\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">short</span><span style="color: #000000; ">&nbsp;buffer[</span><span style="color: #000000; ">4096</span><span style="color: #000000; ">];<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;read&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mpg123_read(mpg123,buffer,</span><span style="color: #000000; ">4096</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">read);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(read&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ao_play(device,buffer,read);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;mpg123_close(mpg123);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;ao_close(device);<br />&nbsp;&nbsp;&nbsp;&nbsp;ao_shutdown();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />}</span></div><img src ="http://www.cppblog.com/gaimor/aggbug/202333.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2013-08-04 12:12 <a href="http://www.cppblog.com/gaimor/archive/2013/08/04/202333.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Microsoft Visual Studio 2005 Team Suite 简体中文版 序列号 注册码（转载）</title><link>http://www.cppblog.com/gaimor/archive/2012/06/03/177310.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Sun, 03 Jun 2012 03:08:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2012/06/03/177310.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/177310.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2012/06/03/177310.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/177310.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/177310.html</trackback:ping><description><![CDATA[<div><p>Microsoft Visual Studio 2005 Team Suite 简体中文版 序列号 注册码 </p>  <p>序列号：KYTYH-TQKW6-VWPBQ-DKC8F-HWC4J&nbsp; (可用)</p>  <p>&nbsp;</p>  <p>添加/删除程序 - Microsoft Visual Studio 2005 Team Suite 简体中文版 - 卸载 - 下一步 - KYTYH-TQKW6-VWPBQ-DKC8F-HWC4J&nbsp; - 升级。</p>  <p>&nbsp;</p></div><img src ="http://www.cppblog.com/gaimor/aggbug/177310.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2012-06-03 11:08 <a href="http://www.cppblog.com/gaimor/archive/2012/06/03/177310.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>环形数据结构</title><link>http://www.cppblog.com/gaimor/archive/2012/06/02/177227.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Sat, 02 Jun 2012 11:15:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2012/06/02/177227.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/177227.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2012/06/02/177227.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/177227.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/177227.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">typedef&nbsp;</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; ">&nbsp;RingBuffer&nbsp;RingBuffer;<br /><br />RingBuffer</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;RingBufferCreate(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;sizeOf,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;length);<br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RingBufferDestroy(RingBuffer</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;ring);<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RingBufferWrite(RingBuffer</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;ring,</span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;data,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;len);<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RingBufferRead(RingBuffer</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;ring,</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;data,</span><span style="color: #0000FF; ">int</span><span style="color: #000000;">&nbsp;len);<br /><br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">struct</span><span style="color: #000000; ">&nbsp;RingBuffer&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;mem;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;sizeOf;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;length;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;writePos;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;full;<br />};<br /><br />RingBuffer</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;RingBufferCreate(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;sizeOf,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;length)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;RingBuffer&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(RingBuffer</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)calloc(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring));<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(ring)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;sizeOf;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;length;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">full&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">mem&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)malloc(ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">mem)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;free(ring);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;ring;<br />}<br /><br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;RingBufferDestroy(RingBuffer</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;ring)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(ring)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;free(ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">mem);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;free(ring);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;&nbsp;RingBufferRead(RingBuffer</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;ring,</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;data,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;len)<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">full&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(len&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(data,ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">mem,len</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">full&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;len)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">full&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;ret&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(data,ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">mem,ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;ret;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">full&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(data,ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">mem,len</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos&nbsp;</span><span style="color: #000000; ">-=</span><span style="color: #000000; ">&nbsp;len;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">mem,ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">mem&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;len</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf,ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;len;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;RingBufferWrite(RingBuffer</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;ring,</span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;data,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;len)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(len&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">full&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;ret&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;len&nbsp;</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length&nbsp;</span><span style="color: #000000; ">?</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length&nbsp;:&nbsp;len;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(len&nbsp;</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">mem,data&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;(ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length</span><span style="color: #000000; ">-</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length</span><span style="color: #000000; ">%</span><span style="color: #000000; ">len)</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf,ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(len&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos&nbsp;</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">mem&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf,data,len</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;len;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">mem,ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">mem&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;(len&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length)</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf,(len&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length)</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">mem&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;(len&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length)</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf,data,len</span><span style="color: #000000; ">*</span><span style="color: #000000; ">ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">sizeOf);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">writePos&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;ring</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">length;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;ret;<br />}<br /></span></div></div><img src ="http://www.cppblog.com/gaimor/aggbug/177227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2012-06-02 19:15 <a href="http://www.cppblog.com/gaimor/archive/2012/06/02/177227.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用tidy修复html文档的小例子</title><link>http://www.cppblog.com/gaimor/archive/2011/08/12/153225.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Fri, 12 Aug 2011 11:46:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2011/08/12/153225.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/153225.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2011/08/12/153225.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/153225.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/153225.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cstdlib</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cstdio</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">iostream</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">tidy</span><span style="color: #000000; ">/</span><span style="color: #000000; ">tidy.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;argc,&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">argv[])<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;rc&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;Bool&nbsp;ok;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;TidyDoc&nbsp;tdoc&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;tidyCreate();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ok&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;tidyOptSetBool(tdoc,TidyXhtmlOut,yes);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;rc&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;tidyParseFile(tdoc,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">file.html</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;rc&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;tidyCleanAndRepair(tdoc);&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;rc&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;tidyRunDiagnostics(tdoc);<br />&nbsp;&nbsp;&nbsp;&nbsp;rc&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;tidySaveFile(tdoc,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">file.htm</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;tidyRelease(tdoc);<br />&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">PAUSE</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;EXIT_SUCCESS;<br />}</span></div><img src ="http://www.cppblog.com/gaimor/aggbug/153225.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2011-08-12 19:46 <a href="http://www.cppblog.com/gaimor/archive/2011/08/12/153225.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最近感觉一直在瞎忙乎</title><link>http://www.cppblog.com/gaimor/archive/2011/07/31/152179.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Sun, 31 Jul 2011 14:16:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2011/07/31/152179.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/152179.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2011/07/31/152179.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/152179.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/152179.html</trackback:ping><description><![CDATA[最近感觉都在瞎忙乎<br />无论是GUI还是Audio Effect都不能带来收益<br />学了几年编程<br />现在发现居然对UI编程还处于一年级水平<br />需要提高UI编程能力啊<br />这简直就是大BUG<img src ="http://www.cppblog.com/gaimor/aggbug/152179.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2011-07-31 22:16 <a href="http://www.cppblog.com/gaimor/archive/2011/07/31/152179.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>忽略大小写的字符串比较函数</title><link>http://www.cppblog.com/gaimor/archive/2011/06/16/148814.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Thu, 16 Jun 2011 14:43:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2011/06/16/148814.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/148814.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2011/06/16/148814.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/148814.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/148814.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;strncasecomp(</span><span style="color: #0000ff">char</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">str1,&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">str2,&nbsp;unsigned&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;len)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;signed&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;c1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;c2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(len</span><span style="color: #000000">--</span><span style="color: #000000">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;tolower(</span><span style="color: #000000">*</span><span style="color: #000000">str1</span><span style="color: #000000">++</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;tolower(</span><span style="color: #000000">*</span><span style="color: #000000">str2</span><span style="color: #000000">++</span><span style="color: #000000">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(c1&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;c1&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;c2)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;c1&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;c2;<br />}</span></div><img src ="http://www.cppblog.com/gaimor/aggbug/148814.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2011-06-16 22:43 <a href="http://www.cppblog.com/gaimor/archive/2011/06/16/148814.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>QT学习笔记-2.QT窗体布局和皮肤加载</title><link>http://www.cppblog.com/gaimor/archive/2011/03/13/141706.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Sun, 13 Mar 2011 04:08:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2011/03/13/141706.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/141706.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2011/03/13/141706.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/141706.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/141706.html</trackback:ping><description><![CDATA[学习QT的一个原因是貌似QT做出来的界面比较绚丽<br>我倒想看看能做出来啥样子的<br><br>从QT窗体布局说起<br>凡是窗体布局无非就是如何摆放的问题<br>1.想当然如果摆放有2个方式一个是所见即所得,一个是使用布局管理器<br>先说后者吧<br>2.QT有好几种布局管理器无非就是啥子流式布局，格子布局等等<br>从这个层级上说软件界面都是布局嵌套的<br>3.布局和控件的关系<br>&nbsp;&nbsp; 一般是一个布局对应于一个控件容器(或者顶层控件)<br>&nbsp;&nbsp; 使用当前布局管理器加挂子控件(容器)即可<br>然后给当前控件挂上布局管理器即可<br>下面是一个简单的QT Layout的例子(从QT例子改的)<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Dialog&nbsp;:&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;QDialog<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;Q_OBJECT<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;Dialog();<br></span><span style="color: #0000ff;">private</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;createHorizontalGroupBox();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">enum</span><span style="color: #000000;">&nbsp;{button_number&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">4</span><span style="color: #000000;">};<br>&nbsp;&nbsp;&nbsp;&nbsp;QGroupBox&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">groupbox;<br>&nbsp;&nbsp;&nbsp;&nbsp;QPushButton&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">buttons[button_number];<br>&nbsp;&nbsp;&nbsp;&nbsp;QDialogButtonBox&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">buttonBox;<br>};</span></div>
实现如下:<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">QtGui</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br>#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">dialog.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;[0]</span><span style="color: #008000;"><br></span><span style="color: #000000;">Dialog::Dialog()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;createHorizontalGroupBox();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;buttonBox&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;QDialogButtonBox(QDialogButtonBox::Ok<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;QDialogButtonBox::Cancel);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;connect(buttonBox,&nbsp;SIGNAL(accepted()),&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">,&nbsp;SLOT(accept()));<br>&nbsp;&nbsp;&nbsp;&nbsp;connect(buttonBox,&nbsp;SIGNAL(rejected()),&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">,&nbsp;SLOT(reject()));<br><br>&nbsp;&nbsp;&nbsp;&nbsp;QVBoxLayout&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">mainLayout&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;QVBoxLayout;<br>&nbsp;&nbsp;&nbsp;&nbsp;mainLayout</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">addWidget(groupbox);<br>&nbsp;&nbsp;&nbsp;&nbsp;mainLayout</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">addWidget(buttonBox);<br>&nbsp;&nbsp;&nbsp;&nbsp;setLayout(mainLayout);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;setWindowTitle(tr(</span><span style="color: #000000;">"</span><span style="color: #000000;">LayoutTest</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br>}<br><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;Dialog::createHorizontalGroupBox()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;groupbox&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;QGroupBox(tr(</span><span style="color: #000000;">"</span><span style="color: #000000;">Layout&nbsp;Test</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;QHBoxLayout&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">layout&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;QHBoxLayout;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;buttons[</span><span style="color: #000000;">0</span><span style="color: #000000;">]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;QPushButton(tr(</span><span style="color: #000000;">"</span><span style="color: #000000;">Button1</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;buttons[</span><span style="color: #000000;">1</span><span style="color: #000000;">]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;QPushButton(tr(</span><span style="color: #000000;">"</span><span style="color: #000000;">Button2</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;buttons[</span><span style="color: #000000;">2</span><span style="color: #000000;">]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;QPushButton(tr(</span><span style="color: #000000;">"</span><span style="color: #000000;">Button3</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;buttons[</span><span style="color: #000000;">3</span><span style="color: #000000;">]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;QPushButton(tr(</span><span style="color: #000000;">"</span><span style="color: #000000;">Button4</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">button_number;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;layout</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">addWidget(buttons[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;groupbox</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">setLayout(layout);<br>}</span></div>
<br>几个知识点:<br>1.groupbox<span style="color: #c0c0c0;"> </span><span style="color: #000000;">=</span><span style="color: #c0c0c0;"> </span><span style="color: #808000;">new</span><span style="color: #c0c0c0;"> </span><span style="color: #800080;">QGroupBox</span><span style="color: #000000;">(</span>tr<span style="color: #000000;">(</span><span style="color: #008000;">"Layout</span><span style="color: #c0c0c0;"> </span><span style="color: #008000;">Test"</span><span style="color: #000000;">)); <br>Layout Test 是个文本这个无须解释<br>那tr呢？查查资料知道是为了支持多语言<br>先知道即可以后使用的话在具体查查吧<br>2.QDialogButtonBox是个什么东西<br>&nbsp;&nbsp; 看看最终的程序界面吧<br>&nbsp;&nbsp; 原来是对话框的确认和取消按钮<br>&nbsp;&nbsp;&nbsp; 再看信号槽函数无非就是绑定按钮到操作函数<br>&nbsp;&nbsp;&nbsp; connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));<br>&nbsp;&nbsp;&nbsp; connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));<br>&nbsp;&nbsp;&nbsp; 那accepted和accept函数有啥区别?<br>&nbsp;&nbsp;&nbsp; 看看文档<br>&nbsp;&nbsp;&nbsp; accept函数的解释是:</span><span class="Apple-style-span" style="border-collapse: separate; color: #000000; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="color: #363534; font-family: Verdana; font-size: 13px; line-height: 20px;">Hides the modal dialog and sets the result code to<span class="Apple-converted-space">&nbsp;</span><tt style="word-spacing: 5px;">Accepted<br>&nbsp; accpeted函数的解释是:</tt></span></span><span class="Apple-style-span" style="border-collapse: separate; color: #000000; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="color: #363534; font-family: Verdana; font-size: 13px; line-height: 20px;">This signal is emitted when the dialog has been accepted either<br><br>在说说QT皮肤<br>学习QT的主要目的就是想做做脸蛋好看好的软件界面<br>那就试试看吧<br>查到的QT有一个名叫QSS(CSS?)的文件可以原来换肤<br>那就改改看吧<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">QApplication</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">QFile</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">QStyleFactory</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">QTextStream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">dialog.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setSkin(QApplication</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;app,&nbsp;QString&nbsp;</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">skinFile);<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;argc,&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">argv[])<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;QApplication&nbsp;app(argc,&nbsp;argv);<br>&nbsp;&nbsp;&nbsp;&nbsp;setSkin(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">app&nbsp;,</span><span style="color: #000000;">"</span><span style="color: #000000;">skin.qss</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;Dialog&nbsp;dialog;<br>&nbsp;&nbsp;&nbsp;&nbsp;dialog.show();<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;app.exec();<br>}<br><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setSkin(QApplication</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;app,&nbsp;QString&nbsp;</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">skinFile)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;QFile&nbsp;qss(skinFile);<br>&nbsp;&nbsp;&nbsp;&nbsp;qss.open(QFile::ReadOnly);<br>&nbsp;&nbsp;&nbsp;&nbsp;app</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">setStyleSheet(qss.readAll());<br>&nbsp;&nbsp;&nbsp;&nbsp;qss.close();<br>}</span></div>
相应的QSS文件如下:<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #800000;">&nbsp;QPushButton&nbsp;<br>&nbsp;</span><span style="color: #000000;">{</span><span style="color: #ff0000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;color</span><span style="color: #000000;">:</span><span style="color: #0000ff;">red</span><span style="color: #000000;">;</span><span style="color: #ff0000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">url(setting.png)<br>&nbsp;</span><span style="color: #000000;">}</span></div>
这里把PushButton的文本颜色设置为红色<br>同时把它的背景设置为图片stting.png<br><br>完了<br>PS:如果学习新知识?<br>囫囵吞枣比较适合快速学习<br></span></span><span style="color: #000000;"></span><br><img src ="http://www.cppblog.com/gaimor/aggbug/141706.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2011-03-13 12:08 <a href="http://www.cppblog.com/gaimor/archive/2011/03/13/141706.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c++软件开发第三方库大全</title><link>http://www.cppblog.com/gaimor/archive/2011/03/11/141592.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Fri, 11 Mar 2011 11:52:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2011/03/11/141592.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/141592.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2011/03/11/141592.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/141592.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/141592.html</trackback:ping><description><![CDATA[1.boost 这个使用的人多不多说了<br>2.pthread windows下的posix线程实现<br>3.libcurl 一个有名的开源网络爬虫库 阿里旺旺中使用到了<br>4.libeay32 OpenSSL Library<br>5.libtidy 一个专门解析htm的库<br>6.zlib 这个鬼都知道<br>7.freetype c接口的type2字体处理库<br>8.libmad 一个编解码mp3的库<br>9.libogg,等 一个编解码ogg音频格式的库<br>10.libsnd 一个开源的编解码十多种音频格式的库<br>11.ffmpeg 一个关于音频视频处理的库<br>12.Freeimage,Cximage,Devil 这3个都是用来处理图形的库<br>13.libpng,libjpeg,....基本同上<br>14.angelscript 一个类似lua的脚本引擎 其脚本风格类似于标准c语言<br>15.flac/flac++一个编解码flac音频格式的库<br>16.tinyxml,rapidxml,libxml 都是关于xml解析方面的<br>17.luaplus,luabind都是涉及绑定lua和c++的库<br>18.ode,bullet 开源的物理引擎库<br>19.timidity一个可以把mid音频格式转化为wav格式的库<br>20.vlc一个类似ffmeg的库<br>21.zthread一个类型boost-thread,pthread的c++风格的多线程库<br>22.sigc++,sigslot信号插槽库 类型的有boost中的signal<br>23.SDL 简单的音频视频库<br>24.hge一个简单的使用ddraw的2维游戏小引擎<br>25.opencv一个开源的处理图形的库<br>26.mygui,cegui 都是游戏上使用的GUI系统<br>27.鬼火游戏引擎,Orge,都是开源的游戏中间件<br>28.Wxwidget一个开源的跨平台,类似MFC<br>29.QT ..<br>30.loki一个实验性质的c++库<br>31.ace一个网络通信库<br>32.fmod一个有点名气的游戏音效引擎<br>33.sqlite 一个开源的桌面数据库<br><br>未完待续<br><br><img src ="http://www.cppblog.com/gaimor/aggbug/141592.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2011-03-11 19:52 <a href="http://www.cppblog.com/gaimor/archive/2011/03/11/141592.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用libtidy解析html文档的小例子一个</title><link>http://www.cppblog.com/gaimor/archive/2011/03/11/141589.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Fri, 11 Mar 2011 11:29:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2011/03/11/141589.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/141589.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2011/03/11/141589.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/141589.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/141589.html</trackback:ping><description><![CDATA[libtidy是一个开源的用来诊断,分析,生成html文档的一个库<br>下面的例子是使用libtidy获取页面链接的例子<br>代码如下:<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#ifndef&nbsp;PARSEPAGE_HPP<br></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;PARFSPAGE_HPP</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">vector</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">tidy</span><span style="color: #000000;">/</span><span style="color: #000000;">buffio.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">tidy</span><span style="color: #000000;">/</span><span style="color: #000000;">fileio.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">tidy</span><span style="color: #000000;">/</span><span style="color: #000000;">tidy.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">tidy</span><span style="color: #000000;">/</span><span style="color: #000000;">tidyenum.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">tidy</span><span style="color: #000000;">/</span><span style="color: #000000;">platform.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;解析html页面&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;ParsePage<br>{<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;std::vector</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">std::</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;String;<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;ParsePage(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;rank&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;std::</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">&nbsp;cur&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">""</span><span style="color: #000000;">):rank(rank),cur(cur)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tidyCreate();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tidyGetRoot(doc);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">~</span><span style="color: #000000;">ParsePage()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tidyRelease(doc);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;解析给定文件</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;LoadFile(</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;file)<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;tidyParseFile(doc,file);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!解析给定内存</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;LoadBuffer(</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;buffer)<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;tidyParseString(doc,buffer);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;内容解析</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;Check()<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CheckHref(root);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;获取链接</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;GetLinkNumber()</span><span style="color: #0000ff;">const</span><span style="color: #000000;">{</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;links.size();}<br>&nbsp;&nbsp;&nbsp;&nbsp;std::</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;GetLinkByIndex(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;index){</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;links.at(index);}&nbsp;<br></span><span style="color: #0000ff;">private</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;DoHref(TidyAttr&nbsp;attr);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;CheckHref(TidyNode&nbsp;node);<br></span><span style="color: #0000ff;">private</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;TidyDoc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc;<br>&nbsp;&nbsp;&nbsp;&nbsp;TidyNode&nbsp;&nbsp;&nbsp;&nbsp;root;<br>&nbsp;&nbsp;&nbsp;&nbsp;std::</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;cur;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rank;<br>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;links;<br>};<br><br></span><span style="color: #0000ff;">#endif</span><span style="color: #000000;"><br></span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;ccsdu2004</span></div>
实现:<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">/</span><span style="color: #0000ff;">string</span><span style="color: #000000;">.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">parsepage.hpp</span><span style="color: #000000;">"</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;ParsePage::DoHref(TidyAttr&nbsp;attr)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;std::</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;href(tidyAttrValue(attr));<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;邮箱地址</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(boost::algorithm::starts_with(href,</span><span style="color: #000000;">"</span><span style="color: #000000;">mailto:</span><span style="color: #000000;">"</span><span style="color: #000000;">))<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;链接地址</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(boost::algorithm::starts_with(href,</span><span style="color: #000000;">"</span><span style="color: #000000;">http:</span><span style="color: #000000;">"</span><span style="color: #000000;">))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size_t&nbsp;itr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;href.find_last_of(</span><span style="color: #000000;">'</span><span style="color: #000000;">#</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(itr&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;std::</span><span style="color: #0000ff;">string</span><span style="color: #000000;">::npos)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;href&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;href.substr(</span><span style="color: #000000;">0</span><span style="color: #000000;">,itr);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(boost::algorithm::contains(href,</span><span style="color: #000000;">"</span><span style="color: #000000;">#</span><span style="color: #000000;">"</span><span style="color: #000000;">))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;links.push_back(href);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;ParsePage::CheckHref(TidyNode&nbsp;node)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;TidyNode&nbsp;child;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(child&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tidyGetChild(node);child;child&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tidyGetNext(child))<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TidyAttr&nbsp;attr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tidyAttrGetHREF(child);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(attr)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DoHref(attr);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CheckHref(child);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}</span></div>
这个对象比较简单<br>调用Check之后所有的页面链接在links中<br><br><img src ="http://www.cppblog.com/gaimor/aggbug/141589.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2011-03-11 19:29 <a href="http://www.cppblog.com/gaimor/archive/2011/03/11/141589.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何写出高质量的函数</title><link>http://www.cppblog.com/gaimor/archive/2011/03/10/141475.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Thu, 10 Mar 2011 02:13:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2011/03/10/141475.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/141475.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2011/03/10/141475.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/141475.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/141475.html</trackback:ping><description><![CDATA[如何写出高质量的函数?<br>根据个人经验具体如下:<br>有遗漏请补充<br>1.从函数功能上考虑要求函数功能单一不能一个函数基本多个功能<br>2.从命名规则上考虑应该变量,函数命名统一具体根据各个单位有所差异<br>3.从易读性上考虑<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一般函数应该写出函数描述,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为了能使函数简单明了函数行数不宜太长以50行为宜<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 函数应该以单一返回路径为佳<br>4.从变量上考虑应该尽可能使用局部变量而非全局变量<br>5.从函数健壮性上考虑函数应该输入参数是否为可能的合法值等等<br>6.从容错性上考虑需要注意异常处理<br>7.另外还需要考虑函数中的变量是否可能会超出其表示范围.<br>8.其他....<br><br><img src ="http://www.cppblog.com/gaimor/aggbug/141475.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2011-03-10 10:13 <a href="http://www.cppblog.com/gaimor/archive/2011/03/10/141475.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一道中兴笔试题</title><link>http://www.cppblog.com/gaimor/archive/2011/03/10/141471.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Thu, 10 Mar 2011 02:01:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2011/03/10/141471.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/141471.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2011/03/10/141471.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/141471.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/141471.html</trackback:ping><description><![CDATA[一道中兴笔试题<br>要求是抠出给定字符串中的所有数字然后排序输入<br>做法如下:<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">cstdlib</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iostream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">ctype.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iterator</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;std;<br><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;output(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;str,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;len)<br>{&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(str&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;NULL&nbsp;</span><span style="color: #000000;">||</span><span style="color: #000000;">&nbsp;len&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">;&nbsp;<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;data&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc(len);<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;tmp&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc(len</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;memset(data,</span><span style="color: #000000;">0</span><span style="color: #000000;">,len);<br>&nbsp;&nbsp;&nbsp;memset(tmp,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)</span><span style="color: #000000;">*</span><span style="color: #000000;">len);<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;index&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;flag&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;isdigit(str[</span><span style="color: #000000;">0</span><span style="color: #000000;">]);<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(i</span><span style="color: #000000;">==</span><span style="color: #000000;">len&nbsp;</span><span style="color: #000000;">||</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">+</span><span style="color: #000000;">j&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;len</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(isdigit(str[i</span><span style="color: #000000;">+</span><span style="color: #000000;">j])&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;flag&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">i</span><span style="color: #000000;">+</span><span style="color: #000000;">j</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;isdigit(str[i</span><span style="color: #000000;">+</span><span style="color: #000000;">j]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(isdigit(str[i</span><span style="color: #000000;">+</span><span style="color: #000000;">j])&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;flag&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(tmp,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)</span><span style="color: #000000;">*</span><span style="color: #000000;">(len</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">));&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strncpy(tmp,str</span><span style="color: #000000;">+</span><span style="color: #000000;">i,j);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data[index</span><span style="color: #000000;">++</span><span style="color: #000000;">]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;atoi(tmp);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000;">++</span><span style="color: #000000;">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;std::sort(data,data</span><span style="color: #000000;">+</span><span style="color: #000000;">index);<br>&nbsp;&nbsp;&nbsp;std::copy(data,data</span><span style="color: #000000;">+</span><span style="color: #000000;">index,std::ostream_iterator</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">(std::cout,</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br>&nbsp;&nbsp;&nbsp;free(tmp);<br>&nbsp;&nbsp;&nbsp;free(data);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>}<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;argc,</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">argv[])<br>{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;input[]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">33k&amp;99+r5sw1f10gd4vc511gc3</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;output(input,strlen(input));<br>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000;">"</span><span style="color: #000000;">PAUSE</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;EXIT_SUCCESS;<br>}</span></div>
严格说来不应该使用stl中的函数和模板但是为了简便起见还是这么写吧<br>&nbsp;<br>另外一直我一直己写strcpyn函数用于复制给定字符串没发现库中有一个类型的strncpy函数<br><br><img src ="http://www.cppblog.com/gaimor/aggbug/141471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2011-03-10 10:01 <a href="http://www.cppblog.com/gaimor/archive/2011/03/10/141471.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FontForge WIN32编译指南</title><link>http://www.cppblog.com/gaimor/archive/2011/01/13/138437.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Thu, 13 Jan 2011 02:21:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2011/01/13/138437.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/138437.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2011/01/13/138437.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/138437.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/138437.html</trackback:ping><description><![CDATA[FontForge是一个开源的工业字体库<br>本文讲述在win32下编译他的流程<br>1.下载fontforge_full-20100501.tar.bz2<br>2.下载cygwin 安装包<br>3.以默认配置安装cygwin<br>4.以默认方式安装的cygwin还缺少一些库还需要安装下列对象<br>&nbsp;&nbsp; x11,zlib,freetype等等<br>5.或者如果不知道那些包需要安装那就全部安装吧&nbsp; 虽然笨一点但是很有效！<br>6.解压fontforge到cygwin下的prj目录<br>7.点击cygwin切换目录到fontfogre下<br>8.执行/configure<br>9.make install<br>10.等待n久<br>11.检查编译结果<br><br><img src ="http://www.cppblog.com/gaimor/aggbug/138437.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2011-01-13 10:21 <a href="http://www.cppblog.com/gaimor/archive/2011/01/13/138437.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c++排列组合函数</title><link>http://www.cppblog.com/gaimor/archive/2010/12/29/137652.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Wed, 29 Dec 2010 03:21:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2010/12/29/137652.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/137652.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2010/12/29/137652.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/137652.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/137652.html</trackback:ping><description><![CDATA[这段时间没咋编程序<br>就写个c++排列组合函数的使用吧 <br>以后使用得着的<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iostream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">vector</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">assign.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">function.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;std;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;boost;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;boost::assign;<br><br>inline&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;print_(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;t){cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">t</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">;}<br>inline&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;print(vector</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;&amp;</span><span style="color: #000000;">&nbsp;vec)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;for_each(vec.begin(),vec.end(),print_);<br>&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>}<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;全排列测试</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;test1()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;vec;<br>&nbsp;&nbsp;&nbsp;&nbsp;vec&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #000000;">2</span><span style="color: #000000;">,</span><span style="color: #000000;">3</span><span style="color: #000000;">,</span><span style="color: #000000;">4</span><span style="color: #000000;">,</span><span style="color: #000000;">5</span><span style="color: #000000;">,</span><span style="color: #000000;">6</span><span style="color: #000000;">,</span><span style="color: #000000;">7</span><span style="color: #000000;">,</span><span style="color: #000000;">8</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;sort(vec.begin(),vec.end());<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">do</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(vec);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(next_permutation(vec.begin(),vec.end()));<br>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">i</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">std::endl;<br>}<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">!&nbsp;组合测试</span><span style="color: #008000;"><br></span><span style="color: #000000;">size_t&nbsp;test2(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;m,boost::function</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">(std::vector</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;&amp;</span><span style="color: #000000;">&nbsp;vec)</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;fn)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;p,</span><span style="color: #0000ff;">set</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;p.insert(p.end(),m,</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;p.insert(p.end(),n</span><span style="color: #000000;">-</span><span style="color: #000000;">m,</span><span style="color: #000000;">0</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;i&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;p.size();</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">set</span><span style="color: #000000;">.push_back(i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;vec;<br>&nbsp;&nbsp;&nbsp;&nbsp;size_t&nbsp;cnt&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">do</span><span style="color: #000000;">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;i&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;p.size();</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(p[i])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vec.push_back(</span><span style="color: #0000ff;">set</span><span style="color: #000000;">[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fn(vec);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vec.clear();<br>&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(prev_permutation(&nbsp;p.begin(),&nbsp;p.end()));<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;cnt;<br>}<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;test1();<br>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">test2(</span><span style="color: #000000;">20</span><span style="color: #000000;">,</span><span style="color: #000000;">3</span><span style="color: #000000;">,print)</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">std::endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}</span></div>
....................................................................................................................<br><br><img src ="http://www.cppblog.com/gaimor/aggbug/137652.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2010-12-29 11:21 <a href="http://www.cppblog.com/gaimor/archive/2010/12/29/137652.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c++如何获取cpu温度</title><link>http://www.cppblog.com/gaimor/archive/2010/08/13/123281.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Fri, 13 Aug 2010 01:10:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2010/08/13/123281.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/123281.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2010/08/13/123281.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/123281.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/123281.html</trackback:ping><description><![CDATA[使用c++如何获取cpu温度<br><br>当前在侦测cpu温度方面做得最好的是core temp,<br>其他的相关软件有cpu Informer,cpu-z,优化大师,鲁大师等等<br>可能获取cpu温度的途径(win2下)<br>有winio,ring0,smbus,汇编,wmi,apic,bios等等<br><br>但是效果都很差<br>有人有什么好的办法可以获得<br>欢迎讨论<br><br>  <img src ="http://www.cppblog.com/gaimor/aggbug/123281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2010-08-13 09:10 <a href="http://www.cppblog.com/gaimor/archive/2010/08/13/123281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自写的c++命令行参数函数</title><link>http://www.cppblog.com/gaimor/archive/2010/08/04/122233.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Wed, 04 Aug 2010 11:31:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2010/08/04/122233.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/122233.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2010/08/04/122233.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/122233.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/122233.html</trackback:ping><description><![CDATA[如下:<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;Parse(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;argc,</span><span style="color: #0000ff;">char</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;argv[])<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(argc&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">need&nbsp;para.</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000;">"</span><span style="color: #000000;">PAUSE</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;is_input_file_para&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;is_output_file_para&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;argc;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(strcmp(argv[i],</span><span style="color: #000000;">"</span><span style="color: #000000;">-read</span><span style="color: #000000;">"</span><span style="color: #000000;">)&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is_input_file_para&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is_output_file_para&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(strcmp(argv[i],</span><span style="color: #000000;">"</span><span style="color: #000000;">-write</span><span style="color: #000000;">"</span><span style="color: #000000;">)&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is_input_file_para&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is_output_file_para&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(is_input_file_para&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_file_name&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;argv[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is_output_file_para&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(is_output_file_para&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output_file_name&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;argv[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is_input_file_para&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>}<br></span></div>
<br>该函数解析命令行获取输入文件和输出文件名字<br>使用方法为:<br>srilm_lm -read gonewiththewind.count -write gonewiththewind.lm<br>其中srilm_lm为程序名<br>该函数可使用于win32和utunbu下<br><img src ="http://www.cppblog.com/gaimor/aggbug/122233.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2010-08-04 19:31 <a href="http://www.cppblog.com/gaimor/archive/2010/08/04/122233.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c++字符串切割</title><link>http://www.cppblog.com/gaimor/archive/2010/08/04/122203.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Wed, 04 Aug 2010 06:16:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2010/08/04/122203.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/122203.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2010/08/04/122203.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/122203.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/122203.html</trackback:ping><description><![CDATA[由于需要使用c++对字符串进行切割<br>故对相关的知识做一个总结<br>1.使用
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">std::stringstream</span></div>
切割字符串<br>比如:<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;std::stringstream&nbsp;str(text);<br>&nbsp;&nbsp;&nbsp;&nbsp;std::</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;tok;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(getline(str,tok,(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)</span><span style="color: #000000;">32</span><span style="color: #000000;">)){}</span></div>
2.还是使用std::stringstream流析出<br>比如:<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;std::stringstream&nbsp;str(s);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;t1,t2,t3,t4;<br>&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">t1;<br>&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">t2;<br>&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">t3;<br>&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">t4;</span></div>
3.使用strtok<br>比如:
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">char</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;token&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;strtok(str.c_str(),</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span></div>
4.使用boost的
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">tokenizer</span></div>
比如:<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">boost::tokenizer</span><span style="color: #000000;">&lt;&gt;</span><span style="color: #000000;">&nbsp;ss(s,char_separator(</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">));<br></span><span style="color: #0000ff;">for</span><span style="color: #000000;">(boost::tokenizer</span><span style="color: #000000;">&lt;&gt;</span><span style="color: #000000;">::iterator&nbsp;beg</span><span style="color: #000000;">=</span><span style="color: #000000;">ss.begin();&nbsp;beg</span><span style="color: #000000;">!=</span><span style="color: #000000;">ss.end();&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">beg){cout</span><span style="color: #000000;">&lt;&lt;*</span><span style="color: #000000;">beg</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;}</span></div>
不过其默认的分隔为空格和标点符号<br>如果需要定制其模板参数<br>可以按照下面的书写:<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;char_separator<br>{<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;char_separator(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;c):sep(c){}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;reset(){}<br>&nbsp;&nbsp;&nbsp;&nbsp;template&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">typename&nbsp;InputIterator,typename&nbsp;Token</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">operator</span><span style="color: #000000;">()(InputIterator</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">&nbsp;next,InputIterator&nbsp;end,Token</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">&nbsp;tok)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tok&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Token();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(;next&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;end&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">next&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;sep;</span><span style="color: #000000;">++</span><span style="color: #000000;">next);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(next&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;end)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(;next&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;end&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">next&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;sep;</span><span style="color: #000000;">++</span><span style="color: #000000;">next)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tok&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">next;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #0000ff;">private</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;sep;<br>};&nbsp;</span></div>
比如:<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">boost::tokenizer</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">char_separator</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;mytok(str,char_separator(</span><span style="color: #000000;">'</span><span style="color: #000000;">@</span><span style="color: #000000;">'</span><span style="color: #000000;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(boost::tokenizer</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">char_separator</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">::iterator&nbsp;beg</span><span style="color: #000000;">=</span><span style="color: #000000;">mytok.begin();&nbsp;beg</span><span style="color: #000000;">!=</span><span style="color: #000000;">mytok.end();&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">beg)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(index&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text1&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">beg;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(index&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text2&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">beg;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(index&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text3&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">beg;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(index&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">3</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text4&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">beg;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #000000;"></span></div>
5.还是boost.<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">cstdlib</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iostream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">vector</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iostream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iterator</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">functional</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">/</span><span style="color: #0000ff;">string</span><span style="color: #000000;">/</span><span style="color: #000000;">classification.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">/</span><span style="color: #0000ff;">string</span><span style="color: #000000;">/</span><span style="color: #000000;">split.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">boost</span><span style="color: #000000;">/</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">/</span><span style="color: #0000ff;">string</span><span style="color: #000000;">/</span><span style="color: #000000;">find_iterator.hpp</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;std;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;boost;<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;argc,&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">argv[])<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;strlist;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;str(</span><span style="color: #000000;">"</span><span style="color: #000000;">12&nbsp;34&nbsp;56&nbsp;678&nbsp;&nbsp;ccsdu2004</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;split(strlist,str,is_any_of(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">),token_compress_on);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(unsigned&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;index</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;index</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">strlist.size();index</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">index&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">strlist[index]</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;};<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000;">"</span><span style="color: #000000;">PAUSE</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;EXIT_SUCCESS;<br>}</span></div>
6.其他不知道的方法若干<br>...<br><br> <img src ="http://www.cppblog.com/gaimor/aggbug/122203.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2010-08-04 14:16 <a href="http://www.cppblog.com/gaimor/archive/2010/08/04/122203.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>