ツールを使いこなすことはプログラマとかに限らず 情報が乱雑する現代社会において効率的な作業ができるかの分かれ目になります ここではC++の統合開発環境である VC++(Visual C++)でプログラムを書く時に便利な機能について紹介します 紹介するのはVisual C++ 2005と2008での画面ですが 2010でも同じです (プログラムの説明ではなく、機能の説明なのでプログラムは最小限にとどめてあります) 一度に全部覚えようとせず 実際に使いながら少しずつ覚えていくとよいです ・[[ショートカットキー>#shortcutkey]] ・[[インテリセンス>#intellicence]] ・[[検索&置換>#find_replace]] ・[[フォーマット>#format]] ・[[行番号表示>#line]] ・[[画面分割>#dividedisp]] ・[[空白表示>#space]] ソースコードの編集時に使う機能の紹介なので プロジェクトを作る必要があります VC++でのプログラミングが初めての人は ここを参照してください ・[[空のプロジェクト>#empty_project]] -------------------- * ショートカットキー &aname(shortcutkey); [#s8f7563c] コード編集で良く使うショートカットキー (※コード編集以外でもよく使います) SIZE(30){ COLOR(#ffaa00){・コピー:Ctrl+C}} SIZE(30){ COLOR(#ffaa00){・切り取り:Ctrl+X}} 両方とも選択箇所を指定した状態で行います 選択箇所をクリップボードと呼ばれるところにデータを一時保存します コピーに関しては元の部分を残した状態でクリップボードに記憶します 切り取りに関しては元の部分を消してクリップボードに記憶します 次のCtrl+Vと組み合わせることがほとんどです SIZE(30){ COLOR(#ffaa00){・張り付け:Ctrl+V}} クリップボードのデータを貼り付けます SIZE(30){ COLOR(#ffaa00){・全選択:Ctrl+A}} 全て選択します SIZE(30){ COLOR(#ffaa00){・元に戻す:Ctrl+Z}} 1つ前の状態に戻します キーの打ち間違いなどをして元の状態を忘れたりした場合に使います n回繰り返すとn回前の状態に戻ります SIZE(30){ COLOR(#ffaa00){・やり直し:Ctrl+Y}} 1つ後の状態に戻します 使い方としてはCtrl+Zで1つ前に戻した状態を1つ後に戻すのに使います これもn回繰り返すとn回やり直します あと、ショートカットキーではないですが 半角スペースで段落(インデント)を付けるよりも SIZE(30){ COLOR(#ffaa00){Tabキー}}を押して段落(インデント)を付けましょう (全角スペースを入力する心配がなくなる) * インテリセンス &aname(intellicence); [#kecd7ec0] 単純にいってしまえば補間機能です 変数名や関数名を途中まで入れると候補となるものをすべて列挙してくれます VB,VC#,Eclipseなどではデフォルトの設定でこの機能が自動的に起動します VC++でも変数名や関数名を途中まで打ち込んだ後、「Ctrl+Space」でインテリセンス機能が使えます 長ったらしい関数や変数の場合はこの機能を使ったほうが効率的です &ref(project25.GIF); ここで気づいてほしいのは、自分で作った変数や関数などもその候補となります * 検索&置換 &aname(find_replace); [#q57f1068] プロジェクト内の単語の検索や置換を行うことができます ショートカットキーはCtrl+F、Ctrl+Hです &ref(project18.GIF); 変数、関数名を検索や置換するのに便利です デバックや修正によく使います 検索には様々なオプションがあります &ref(project26.GIF); 検索対象は ・現在のドキュメント(現在開いているドキュメント) ・選択した部分(あらかじめ選択した部分) ・すべての開かれたドキュメント(タブが開いている全てのドキュメント) ・プロジェクト全体(プロジェクトの全てのファイルが対象です) ・ソリューション全体(全てのプロジェクトの全てのファイルが対象です) ・現在のブロック(選択箇所を包括しているブロック{}が対象です) から選ぶことができます また、検索条件に正規表現やワイルドカードを用いることもできます 置換のオプションは検索とほぼ同じです &ref(project19.GIF); また、一括で検索結果を出すにはシンボルの検索を行います ショートカットキーはCtrl+Shift+YもしくはAlt+F12 &ref(project20.GIF); 検索対象を「マイソリューション」 検索オプションを「単語単位」にすると ソリューションで使われている単語を一括検索することができます * フォーマット &aname(format); [#i140dffb] フォーマット(整形)機能を使うとソースコードを見やすくできます たとえば次のようなぐちゃぐちゃなソースコードでも &ref(project21.GIF); 「Ctrl+A」で現在のドキュメントを全選択します &ref(project22.GIF); 「編集」→「詳細」→「選択範囲のフォーマット」 ショ−トカットキーはCtrl+KしたあとにCtrl+F、もしくはAlt+F8 で選択範囲を整形します &ref(project23.GIF); 綺麗に整形されます &ref(project24.GIF); * 行番号表示 &aname(line); [#wbc6d17f] 行の番号を自動的に振ってくれる機能があります &ref(project27.GIF); 「ツール」→「オプション」を選びます &ref(project28.GIF); 「テキストエディタ」→「C/C++」→「全般」を選び、行番号にチェックをいれます &ref(project29.GIF); 行番号が振られます &ref(project30.GIF); 一度設定すれば次からのプロジェクトは 全て行番号が振られるようになります * 画面分割 &aname(dividedisp); [#j8921cfa] 画面に余裕がある場合は分割したほうが 複数のソースファイルを同時に見ることができて便利です 複数ソースファイルを開いてる状態で ソースファイルのタブを右クリックします すると垂直分割の項目があるので選びます &ref(project32.GIF); 縦に分割できます &ref(project33.GIF); また、ひとつのソースコードでも2画面に分けてみることができます &ref(project34.GIF); 分割できます &ref(project35.GIF); お勧めとしてはソースコードが長くなった場合に 上下で分けてみるのに使えます * 空白表示 &aname(space); [#e6b1a64c] Ctrl+Shift+8を押すと スペース空白は「・」でタブ空白は「→」で書かれるようになります 元に戻したいときはもう一度Ctrl+Shift+8を押します &ref(project31.GIF); ------- * 空のプロジェクト &aname(empty_project); [#v28f01ff] 適当な空のプロジェクト(プログラムをまとめたもの)を作ります お勧めはWin32コンソールです プロジェクト名は適当な名前を付けます &ref(console.GIF); 「次へ」を押してください(完了を押すと余計なファイルができてしまう) &ref(console2.GIF); 空のプロジェクトにチェックを付けてから 完了を押してください &ref(console3.GIF); 新規のファイルを追加します &ref(project4.GIF); ソリューションエクスプローラが見つからない場合は「表示」→「ソリューションエクスプローラ」 で表示してください &ref(project6.GIF); 新規ファイルを作成します(C++ファイル) C++ファイルを選び、名前をつけて追加を押してください &ref(project5.GIF); C++ファイルが追加されます &ref(project7.GIF); ここでフォルダのアイコンは「フィルタ」と呼びます 「フィルタ」に入っていればプロジェクトに追加されていることになっているので どこにあってもビルド(プログラムの実行ファイル作成)に関係ありません またフィルタ自体は数に関係なくビルドに影響しません (ただしファイルのパスは確認したほうが良いです、 これについてはあとで説明します) スタートページのタブはプロジェクト(プログラム)に関係ありませんので 邪魔な場合はスタートページタブ上で右クリックして閉じてしまいます &ref(project8.GIF); 大体こんな感じになれば準備完了です &ref(project9.GIF); ここまでは何も見なくてもできるようにしておいたほうがいいです これ以降、VC++で空のプロジェクト作成といったらここまでの作業のことを指します 試しに今作ったソースコード(私はmain.cppにしました)に次のように正確に書き込んでください 英字のスペルは1文字でも間違ったら駄目です(また、スペースは必ず半角スペースで入力してください) &ref(project10.GIF); ところで、 まれに次のように書く人がいますが・・・ #include <stdio.h> void main(){ printf("Hello World!\n"); } このようにvoid main()と書いてはいけません 理由はVC++上(windows上)ではコンパイルは通り、プログラムが作成されますが、 unixやlinuxなどの他のOS上ではコンパイルができず、プログラムが作成できません というわけで必ずint main()で書いてください 書きこんだら メニュー項目のソリューションのビルドを押します メニューを選ぶのがめんどくさい人は「F7」キーを押します &ref(project11.GIF); SIZE(30){ COLOR(#ffaa00){ここで重要となるのはショートカットキーとアクセラレータキーです}} この二つはしばしば混同されがちですが・・・ マウス操作以外でアプリケーション(ここではVC++になります)の機能を使う方法で 特定のキーの組み合わせを押すことで機能を使うことができます このキーの組み合わせをショットカットキーやアクセラレータキーと呼びます この二つの違いは ・アクセラレータキーはメニューバーに書かれていて現在の画面に見えてるものを指します 基本的にAltキーを押しながら特定のキーを押します (たとえばビルドの項目の横に(B)と書かれている、この場合はAltキーとBを同時押しするとビルドのメニュー項目が開きます) ・ショートカットキーは目には見えてないけどアプリケーションで使うことができる機能を指します 基本的にファンクションキー(F数字)のキー もしくは、Ctrlキーを押しながら別のキーの組み合わせであることが多いです (VC++でソリューションのビルドを行うにはF7キーを押します) 組み合わせるときはCtrl+他のキーと書きます、たとえばCtrl押しながらBの場合はCtrl+Bと書きます アクセラレータキーとショットカットキーを使うことで(マウス操作より速いので) 作業の効率をあげることができます VC++に限らずほとんどのアプリケーションはこの機能がついていることがほとんどなので 覚えておいて損はないです (アプリケーション毎に異なったりしますが・・・) さてビルドを行い、ビルドが成功すると次の画面が出てきます 下の表示でない人はエラー(error)が出ているはずです &ref(project12.GIF); ここで見慣れない用語がでてきました この2つの用語はプログラムを作る過程のことを指しています SIZE(30){ COLOR(#ffaa00){・コンパイル}} SIZE(30){ COLOR(#ffaa00){・リンク}} コンパイルというのはプログラムの文法があっているかのチェックをして、.objファイルというファイルを作成します (ただし足し算するべきところを引き算にしてしまったとかいう類のエラーは検出できない) リンカというのは複数の.objファイルと.libファイルを合体させて、 実行可能な.exeファイル(アプリケーション)を作成します (.objファイルや.libファイルは部品のイメージで、 それをリンカで合体させて.exeファイル(アプリケーション)を作ります) 表示が出てきてない人は ソリューションエクスプローラーの時と同様、「表示」→「出力」で表示します &ref(project6.GIF); エラー(error)が出ている人は よくあるエラーなのですが、つぎのようになっていないか確認してください &ref(project13.GIF); error C3872:'0x3000'はこの文字を識別子で使用することはできません と書かれています '0x3000'とは全角スペースのことです つまり、このエラーが出ているときはプログラム中に全角スペースがあります、 かならず半角スペースに直してください SIZE(30){ COLOR(#ffaa00){エラーの箇所をダブルクリックするとエラーの行に飛びます}} ほかの種類のエラーに関しても飛ぶことができるのでデバックに便利です &ref(project14.GIF); error C3872:の行数分、全角スペースが含まれているので注意してください また、次のエラー(error C3861)が出た人は#include <stdio.h>を忘れているか printfのスペルミスを確認してください &ref(project15.GIF); 直すのがめんどくさいときは次のコードをコピー&ペーストしてください (マウスドラックで選択、Ctrl+Cでコピー後Ctrl+Vで張り付け) #include <stdio.h> int main(){ printf("Hello World!\n"); return 0; } なお、VC++ 2010だと自動的に赤下波線で箇所を表示してくれます さて、ビルドが成功後、作成したアプリケーションを実行してみます 実行するには「デバック」→「デバックなしで開始」を選びます ショートカットキーは「Ctrl+F5」です &ref(project16.GIF); 実行結果は次のように出てくれば成功です &ref(project17.GIF); ------ #vote((^ω^)やったお[1],何これwww意味不すぎwww[0],。(`ω´#)。あぁん?最近、だらしねぇな[0])