<?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>https://coder.tw/ja/tags/c++/</link><description>Recent content in C++ on Lin's Blog</description><generator>Hugo</generator><language>ja-JP</language><lastBuildDate>Sat, 03 Sep 2011 11:03:57 +0000</lastBuildDate><atom:link href="https://coder.tw/ja/tags/c++/index.xml" rel="self" type="application/rss+xml"/><item><title>Code::Blocks で中国語が文字化けする問題の解決方法</title><link>https://coder.tw/ja/posts/fix-codeblocks-chinese-encoding/</link><pubDate>Sat, 03 Sep 2011 11:03:57 +0000</pubDate><guid>https://coder.tw/ja/posts/fix-codeblocks-chinese-encoding/</guid><description>&lt;p&gt;Code::Blocks は私が個人的に気に入って使っている C/C++ の IDE ですが、以前から一つ問題にぶつかっていました。Code::Blocks では中国語がまったく使えず、文字列に中国語を入れられないどころか、コメントにも書けなかったのです。最初は本体のバグだと思っていましたが、ネットユーザーに教えてもらい、実はデフォルトのエンコーディングの問題だと分かりました！&lt;/p&gt;</description></item><item><title>【C++】STL 組み込みの sort() 関数で並べ替えを行う！</title><link>https://coder.tw/ja/posts/c-stl-sort-function/</link><pubDate>Thu, 25 Aug 2011 10:30:09 +0000</pubDate><guid>https://coder.tw/ja/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>https://coder.tw/ja/posts/1a2b-code-explained/</link><pubDate>Fri, 08 Jul 2011 18:00:28 +0000</pubDate><guid>https://coder.tw/ja/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>https://coder.tw/ja/posts/shuffle-algorithm-swap-method/</link><pubDate>Sun, 05 Jun 2011 01:00:07 +0000</pubDate><guid>https://coder.tw/ja/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;シャッフルアルゴリズムは、重複しない乱数を生成できるアルゴリズムの一つです。たとえば、10 個の乱数を生成し、そのすべてが「重複しない」必要があるとします。多くの人は、まず rand 関数で乱数を 1 つ取得して配列に格納し、配列にすでにある数字と比較する方法を思いつくと思います。この方法は簡単ですが、性能がとても悪くなります。ここで紹介するシャッフルアルゴリズムは、性能の面でその方法とは天と地ほどの差があります。シャッフルアルゴリズムの原理は実はとても単純で、まず配列に数字を入れ、その後に数字を打ち散らす（シャッフルする）というものです。&lt;/p&gt;</description></item><item><title>wxDevC++ - Dev C++ ファンなら知っておきたい C++ IDE</title><link>https://coder.tw/ja/posts/wxdevc-c-ide-for-devc-lovers/</link><pubDate>Wed, 18 May 2011 00:22:47 +0000</pubDate><guid>https://coder.tw/ja/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++ のように問題だらけということがありません……。そのため、もし Dev C++ に慣れているなら、wxDev C++ を使うことをおすすめします。ほとんど Dev C++ と同じなので！ 私は引き続き自分の Code::Blocks を使うことにします～&lt;/p&gt;
&lt;h2&gt;</description></item><item><title>10進数を2進数に変換する方法は？</title><link>https://coder.tw/ja/posts/decimal-to-binary-conversion/</link><pubDate>Sat, 16 Apr 2011 19:38:38 +0000</pubDate><guid>https://coder.tw/ja/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; さて本題に入ります。今週、プログラミングの授業で先生からクラス全員に出された課題は、10進数を2進数に変換する方法でした。数学的に計算するなら難しくありません。割り算の余りを取っていく短除法を使えばいいだけです。&lt;/p&gt;
&lt;p&gt;</description></item><item><title>三角形の生成：左上、左下、右上、右下</title><link>https://coder.tw/ja/posts/loop-practice-print-triangle/</link><pubDate>Mon, 21 Mar 2011 02:46:28 +0000</pubDate><guid>https://coder.tw/ja/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>https://coder.tw/ja/posts/c-power-and-square-root-sqrt-pow/</link><pubDate>Fri, 18 Mar 2011 15:05:05 +0000</pubDate><guid>https://coder.tw/ja/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 関数を使う必要があることに気づきました。この記事では、2 つの関数を紹介します。1 つは べき乗を計算してくれる pow、もう 1 つは平方根を求めてくれる sqrt です。&lt;/p&gt;</description></item><item><title>【C++】数字の反転・文字列の反転（応用：型変換、文字列処理、ループ）</title><link>https://coder.tw/ja/posts/c-reverse-number-and-string/</link><pubDate>Sun, 06 Mar 2011 11:18:22 +0000</pubDate><guid>https://coder.tw/ja/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;これはかなり簡単な問題で、数字や文字列を反転させるだけです。たとえば「linroex」と入力すると「xeornil」が、123 と入力すると 321 が出力されます。解き方は難しくありません。C++ では文字列を配列のようにアクセスできる特徴を利用して、入力文字列の長さをループの終了値に設定します。ループを 1 回まわすたびに、文字列 X の最後の文字を文字列 Y の先頭に移します。ループが終わったとき、反転が完了しています。&lt;/p&gt;
&lt;p&gt;</description></item><item><title>【PHP】【C++】簡潔な明示的型キャストの書き方</title><link>https://coder.tw/ja/posts/php-c-explicit-type-cast/</link><pubDate>Tue, 15 Feb 2011 22:57:49 +0000</pubDate><guid>https://coder.tw/ja/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>https://coder.tw/ja/posts/codeblocks-cross-platform-c-compiler/</link><pubDate>Fri, 11 Feb 2011 10:42:29 +0000</pubDate><guid>https://coder.tw/ja/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 など複数の OS に対応しています。そのため、Ubuntu で C のプログラムを書きたい場合は、このソフトを試してみるとよいでしょう。
&lt;p&gt;この記事は Windows 向けのチュートリアルです。&lt;/p&gt;</description></item><item><title>【VB】【C++】n!（階乗）の計算</title><link>https://coder.tw/ja/posts/vb-c-factorial-n-2/</link><pubDate>Wed, 05 Jan 2011 05:58:10 +0000</pubDate><guid>https://coder.tw/ja/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>https://coder.tw/ja/posts/c-cmd-send-file-to-console-app-2/</link><pubDate>Sat, 04 Dec 2010 10:00:16 +0000</pubDate><guid>https://coder.tw/ja/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 というプログラムと 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></channel></rss>