<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>C++ on Lin's Blog</title><link>http://coder.tw/tags/c++/</link><description>Recent content in C++ on Lin's Blog</description><generator>Hugo</generator><language>zh-tw</language><lastBuildDate>Sat, 03 Sep 2011 11:03:57 +0000</lastBuildDate><atom:link href="http://coder.tw/tags/c++/index.xml" rel="self" type="application/rss+xml"/><item><title>解決Code::blocks中文亂碼的問題</title><link>http://coder.tw/posts/fix-codeblocks-chinese-encoding/</link><pubDate>Sat, 03 Sep 2011 11:03:57 +0000</pubDate><guid>http://coder.tw/posts/fix-codeblocks-chinese-encoding/</guid><description>&lt;p&gt;Code::blocks是我個人喜歡使用的一個C/C++ IDE，但是之前一直有遇到一個問題，就是使用Code::blocks時完全不能使用中文，包含字串不能有中文，連註解也不能有中文，原本想說這是他本身的Bug，後來網友提醒才知道原來是預設編碼的問題！&lt;/p&gt;</description></item><item><title>【C++】使用STL內建的sort()函式做到排序功能！</title><link>http://coder.tw/posts/c-stl-sort-function/</link><pubDate>Thu, 25 Aug 2011 10:30:09 +0000</pubDate><guid>http://coder.tw/posts/c-stl-sort-function/</guid><description>&lt;p&gt;&lt;a href="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/08/2011-08-25_102642.jpg"&gt;&lt;img class="alignnone size-large wp-image-724" title="2011-08-25_102642" src="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/08/2011-08-25_102642-540x352.jpg" alt="" width="540" height="352" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;排序這門課是所有學程式的人都必修的東西，因為很多資料的處理都需要用到他，很多程式語言也都把排序的函式放到程式語言的內部，讓開發者可以很方便的使用，但我想應該很少人知道，其實C++也有內建排序函式吧！&lt;/p&gt;</description></item><item><title>1A2B程式碼、詳解</title><link>http://coder.tw/posts/1a2b-code-explained/</link><pubDate>Fri, 08 Jul 2011 18:00:28 +0000</pubDate><guid>http://coder.tw/posts/1a2b-code-explained/</guid><description>&lt;p&gt;&lt;a href="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/07/2011-07-08_175731.jpg"&gt;&lt;img class="alignnone size-large wp-image-550" title="2011-07-08_175731" src="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/07/2011-07-08_175731-540x352.jpg" alt="" width="540" height="352" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;這是之前老師上課時出的作業，就是設計一個1A2B的遊戲，其實在上這堂課之前我一直以為1A2B很難寫，等到這堂課上完才知道，不是很難寫，是我這傢伙太宅了，根本不知道1A2B的規則是啥&amp;hellip;.&lt;/p&gt;</description></item><item><title>洗牌演算法（交換法）</title><link>http://coder.tw/posts/shuffle-algorithm-swap-method/</link><pubDate>Sun, 05 Jun 2011 01:00:07 +0000</pubDate><guid>http://coder.tw/posts/shuffle-algorithm-swap-method/</guid><description>&lt;p&gt;&lt;a href="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/06/2011-06-05_005920.jpg"&gt;&lt;img class="size-large wp-image-534 aligncenter" title="2011-06-05_005920" src="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/06/2011-06-05_005920-540x352.jpg" alt="" width="540" height="352" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;洗牌演算法就是可以產生不重複的亂數的一種演算法，舉例來講如果要產生十個亂數，並且這十個亂數必須是「不重複」的，那很多人的直覺是用rand函式取得一個亂數值以後，存入陣列，並且跟陣列內以有的數字做比對，這種方法簡單是簡單，但是效能很差，而這裡要介紹的洗牌演算法效能跟剛剛講的方法可說是天差地遠，洗牌演算法的原理其實很簡單，就是先在陣列裡存入數字，然後將數字打散&lt;/p&gt;</description></item><item><title>wxDevC++ - Dev C++的愛好者一定要知道的C++ IDE</title><link>http://coder.tw/posts/wxdevc-c-ide-for-devc-lovers/</link><pubDate>Wed, 18 May 2011 00:22:47 +0000</pubDate><guid>http://coder.tw/posts/wxdevc-c-ide-for-devc-lovers/</guid><description>&lt;p&gt;&lt;a href="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/05/2011-05-18_000748.jpg"&gt;&lt;img class="size-full wp-image-479 aligncenter" title="2011-05-18_000748" src="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/05/2011-05-18_000748.jpg" alt="" width="471" height="292" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;很多學習C++的人其實都是從Dev C++開始的，因為VC++對一般初新者而言方便是方便，但無法學習到標準的C語言（ANSI C），原因就是VC裡面有太多的函式是屬於.NET的，如果改用其他編譯器去編譯的話就會出問題，因此一般新手都是用Dev C++或是Code::Blocks，但非常可惜的就是說Dev C++其實已經好幾年沒有更新，很多新型的功能他也都不支援了，然後Code::Blocks的缺點則是說對中文支援度差，程式碼裡面有中文就會出問題，包括註解也不能用中文，而在這裡要推薦的wxDev C++其實就是一套延續Dev C++特性，但卻又多了一些新功能，不像Dev C++問題多多&amp;hellip;. 所以你如果用習慣Dev C++的話建議妳可以來用wxDev C++，因為他跟Dev C++幾乎一樣！至於我就繼續用我的Code::blocks吧～&lt;/p&gt;
&lt;h2&gt;</description></item><item><title>如何把十進位數字轉換成二進位？</title><link>http://coder.tw/posts/decimal-to-binary-conversion/</link><pubDate>Sat, 16 Apr 2011 19:38:38 +0000</pubDate><guid>http://coder.tw/posts/decimal-to-binary-conversion/</guid><description>&lt;p&gt;&lt;a href="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/04/2011-04-16_185412.jpg"&gt;&lt;img title="2011-04-16_185412" src="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/04/2011-04-16_185412.jpg" alt="" width="205" height="237" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;del&gt;我估計寫完這文章之後又有人要說我寫的文章太簡單了...&lt;/del&gt; 廢話不多說，這週程式課我們老師給我們班出了一道題目，內容就是要如何把十進位轉換成二進位，如果是用數學來算的話其實不難，用短除法去算，然後取餘數就可以了&lt;/p&gt;
&lt;p&gt;</description></item><item><title>三角形產生：左上、左下、右上、右下</title><link>http://coder.tw/posts/loop-practice-print-triangle/</link><pubDate>Mon, 21 Mar 2011 02:46:28 +0000</pubDate><guid>http://coder.tw/posts/loop-practice-print-triangle/</guid><description>&lt;p&gt;&lt;a href="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/03/2011-03-21_024015.jpg"&gt;&lt;img class="size-large wp-image-379 aligncenter" title="2011-03-21_024015" src="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/03/2011-03-21_024015-540x492.jpg" alt="" width="540" height="492" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;這是我們程式老師上課時教迴圈時舉的一些例子，我是覺得題目本身不難，但是很適合拿來做迴圈的練習，訓練自己的反應速度，還有就是我現在寫VB的程度退化好多... 所以附上C++程式碼給大家看，自己研究吧～&lt;/p&gt;
&lt;p&gt;</description></item><item><title>【C++】如何進行次方與根號運算?(sqrt、pow)</title><link>http://coder.tw/posts/c-power-and-square-root-sqrt-pow/</link><pubDate>Fri, 18 Mar 2011 15:05:05 +0000</pubDate><guid>http://coder.tw/posts/c-power-and-square-root-sqrt-pow/</guid><description>&lt;p&gt;&lt;a href="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/03/2011-03-18_151805.jpg"&gt;&lt;img class="alignnone size-large wp-image-367" title="2011-03-18_151805" src="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/03/2011-03-18_151805-540x380.jpg" alt="" width="540" height="380" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;在一些程式語言裡面，要進行次方運算是可以直接用^運算子來達到的，但是之前在寫題目時才發現原來C++裡面要做次方運算必須要使用pow函式才能達到，在這篇文章裡要介紹兩個函式，一個是pow，它可以幫你做次方運算，另一個就是sqrt，它可以幫你做根更號的工作&lt;/p&gt;</description></item><item><title>【C++】數字翻轉、字串翻轉(應用：轉型別、字串處理、迴圈)</title><link>http://coder.tw/posts/c-reverse-number-and-string/</link><pubDate>Sun, 06 Mar 2011 11:18:22 +0000</pubDate><guid>http://coder.tw/posts/c-reverse-number-and-string/</guid><description>&lt;p&gt;&lt;a href="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/03/2011-03-06_111510.jpg"&gt;&lt;img class="size-large wp-image-342 aligncenter" title="2011-03-06_111510" src="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/03/2011-03-06_111510-540x382.jpg" alt="" width="540" height="382" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;這算是蠻簡單的題目，就只是做數字or字串的翻轉，例如輸入：linroex會輸出：xeornil或是輸入123會傳回321，這題解法並不難，透過C++裡面字串可以用陣列的方式存取這個特性，我們設定一個迴圈，然後取得輸入字串的長度作為迴圈的結束值，接者當迴圈跑一圈時就把X字串最後一個字移到Y字串第一個字，這樣當迴圈跑完時就翻轉完成了&lt;/p&gt;
&lt;p&gt;</description></item><item><title>【PHP】【C++】簡潔的強制顯式轉型別語法</title><link>http://coder.tw/posts/php-c-explicit-type-cast/</link><pubDate>Tue, 15 Feb 2011 22:57:49 +0000</pubDate><guid>http://coder.tw/posts/php-c-explicit-type-cast/</guid><description>&lt;p style="text-align: center;"&gt;&lt;a href="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/02/2011-02-15_225730.jpg"&gt;&lt;img class="size-large wp-image-282 aligncenter" title="2011-02-15_225730" src="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/02/2011-02-15_225730-540x352.jpg" alt="" width="540" height="352" /&gt;&lt;/a&gt;&lt;/p&gt;
在PHP跟C++裡面有一種很方便的轉型別方法，你不用去記那一大串的轉型別函式，直接使用一個括弧加上要轉的型別就可以了，不過這方式好像會有一些問題，不過這部份我也不太清楚XD</description></item><item><title>Code::Blocks 10.05 - 能夠媲美Dev C++的C/C++編譯器,跨平台(Ubuntu、Windows、Mac)</title><link>http://coder.tw/posts/codeblocks-cross-platform-c-compiler/</link><pubDate>Fri, 11 Feb 2011 10:42:29 +0000</pubDate><guid>http://coder.tw/posts/codeblocks-cross-platform-c-compiler/</guid><description>&lt;p style="text-align: center;"&gt;&lt;a href="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/02/2010-10-28_182355.jpg"&gt;&lt;img class="alignnone size-full wp-image-191" title="2010-10-28_182355" src="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/02/2010-10-28_182355.jpg" alt="" width="440" height="217" /&gt;&lt;/a&gt;&lt;/p&gt;
相信大家都知道Dev C++這套編譯器吧？ 因為很多的學校在教C語言時都是以這套編譯器做平台來教學的,例如高中的前三志願電腦課用的好像就是他,不過在這裡我們要跟各位介紹的不是Dev C++,而是&lt;strong&gt;&lt;a href="http://www.codeblocks.org/"&gt;Code::Blocks&lt;/a&gt;&lt;/strong&gt;,Code::Blocks跟Dev C++同樣都是C語言(c和c++)的編譯器,不過如果你有在注意Dev C++的版本的話你可能會發現他已經好久沒有更新了,而&lt;strong&gt;&lt;a href="http://www.codeblocks.org/"&gt;Code::Blocks&lt;/a&gt;&lt;/strong&gt;這套編譯器不但和Dev C++一樣是免費、開源,也支援Windows與Linux的多作業系統,所以想再Ubuntu裡面寫C程式的話可以試試看這套軟體
&lt;p&gt;此教學為Windows用教學&lt;/p&gt;</description></item><item><title>【VB】【C++】計算n!(階層)</title><link>http://coder.tw/posts/vb-c-factorial-n-2/</link><pubDate>Wed, 05 Jan 2011 05:58:10 +0000</pubDate><guid>http://coder.tw/posts/vb-c-factorial-n-2/</guid><description>&lt;p&gt;&lt;a href="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/01/2011-01-05_054100.jpg"&gt;&lt;img class="alignnone size-large wp-image-4369" title="2011-01-05_054100" src="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2011/01/2011-01-05_054100-520x253.jpg" alt="" width="520" height="253" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;要計算n的階層是很簡單的一件事,會寫到這個程式是因為排列組合,我想要精確的知道答案會在幾種左右,因此就寫了n!的函數來幫忙求階層的值,所謂的階層就是指從1&lt;em&gt;2&lt;/em&gt;3&amp;hellip;..&lt;em&gt;n的意思,而在排列組合中如果要被排列的字有5個字,那麼排列後的結果就最多不超過5&lt;/em&gt;4&lt;em&gt;3&lt;/em&gt;2*1的值,也就是最多不超過120個答案&lt;/p&gt;
&lt;p&gt;以下我把n!做成Function,有VB版的跟C++版的,剛開始學迴圈的人可以用這個函式來學習迴圈的用法,另外因為擔心integer會存不下資料,所以我使用string來傳回資料,到時候用這個Function時要先把傳回值轉成數字型別才可以&lt;/p&gt;
&lt;h2&gt;</description></item><item><title>【C++】用CMD傳送檔案給主控台應用程式以及傳回資料</title><link>http://coder.tw/posts/c-cmd-send-file-to-console-app-2/</link><pubDate>Sat, 04 Dec 2010 10:00:16 +0000</pubDate><guid>http://coder.tw/posts/c-cmd-send-file-to-console-app-2/</guid><description>&lt;p style="text-align: center;"&gt;&lt;a href="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2010/11/2010-11-26_232836.jpg"&gt;&lt;img class="size-large wp-image-4097 aligncenter" title="2010-11-26_232836" src="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2010/11/2010-11-26_232836-520x365.jpg" alt="" width="520" height="365" /&gt;&lt;/a&gt;&lt;/p&gt;
其實在C++裡面除了單純的使用fopen來讀取檔案之外,還有另外一種方法也可以讀取檔案,而且實作起來比fopen簡單很多,那就是利用cmd來餵檔案給C++程式,舉例來講現在有一個程式叫做test.exe,還有一個txt檔叫做x.txt,然後我要讓test.exe讀取x.txt的資料並顯示出來,則我開啟CMD,然後再裡面輸入 &lt;em&gt;&lt;strong&gt;test.exe&amp;lt;x.txt&lt;/strong&gt;&lt;/em&gt; 就可以讀取並顯示出x.txt的內容了,下面文章要教大家的就是這種讀取檔案的方式,另外感謝網友滄海教會我這種用法</description></item><item><title>Code::Blocks 10.05 - 能夠媲美Dev C++的C/C++ IDE</title><link>http://coder.tw/posts/codeblocks-cross-platform-c-compiler-2/</link><pubDate>Thu, 28 Oct 2010 19:03:28 +0000</pubDate><guid>http://coder.tw/posts/codeblocks-cross-platform-c-compiler-2/</guid><description>&lt;p style="text-align: center;"&gt;&lt;a href="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2010/10/2010-10-28_182355.jpg"&gt;&lt;img class="alignnone size-full wp-image-3910" title="2010-10-28_182355" src="https://pub-6c026d2742d14927bfa2d850c31eac91.r2.dev/wp-content/uploads/2010/10/2010-10-28_182355.jpg" alt="" width="440" height="217" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;相信大家都知道Dev C++這套編譯器吧？ 因為很多的學校在教C語言時都是以這套編譯器做平台來教學的,例如高中的前三志願電腦課用的好像就是他,不過在這裡我們要跟各位介紹的不是Dev C++,而是&lt;strong&gt;&lt;a href="http://www.codeblocks.org/"&gt;Code::Blocks&lt;/a&gt;&lt;/strong&gt;,Code::Blocks跟Dev C++同樣都是C語言(c和c++)的編譯器,不過如果你有在注意Dev C++的版本的話你可能會發現他已經好久沒有更新了,而&lt;strong&gt;&lt;a href="http://www.codeblocks.org/"&gt;Code::Blocks&lt;/a&gt;&lt;/strong&gt;這套編譯器不但和Dev C++一樣是免費、開源,也支援Windows與Linux的多作業系統,所以想再Ubuntu裡面寫C程式的話可以試試看這套軟體&lt;/p&gt;
&lt;p&gt;此教學為Windows用教學&lt;/p&gt;
&lt;p&gt;</description></item></channel></rss>