2012年6月29日金曜日

コンソールアプリケーションの作成

コンソールアプリケーションとは文字ベースのソフトの事です。
↓こんな感じのウインドウが出せます。


VC++でこの画面を作るのは簡単であり、C++を学ぶための入り口として適しています。必要なソースコードが少ないので、何がC++の最小要素なのかを理解できます。本やWebで見られる参考資料もだいたいこのモードで通用する形で書かれています。
ここではVC++2010Expressでのコンソールアプリケーションの作り方を説明しますが、仮に他のバージョンでもVC++ならだいたいこんな感じでしょう。

プロジェクト(ソリューション)の作成

VC++でどの様なアプリケーションを作る場合でも、まずはじめにやらないといけないのがプロジェクト(ソリューション)の作成です。
 プロジェクトはアプリケーションを作るために必要なファイルを管理します。ソリューションは複数のプロジェクトをまとめて管理できるフォルダの様な存在です。
上の写真はBulletというフリーの物理演算用のライブラリのソリューションの例です。一つのソリューションに複数のプロジェクトが存在して機能群(部門・部品みたいな感じ)を構成しています。

今回は一つのソリューションに一つのプロジェクトだけを作ります。

まずVC++を起動させたら左上のメニューから
ファイル→新規作成→プロジェクト・・・を選択します


次に左の枠からWin32を選択し、中央の枠からWin32コンソールアプリケーションを選びます。(左の枠がどうあれ、中央の枠の中でWin32コンソールアプリケーションが選べればOKです。)
そして下の枠にプロジェクトの名前を入れてOKボタンを押します。プロジェクトの名前がこれから作るアプリケーションの名前になると思って下さい。右下の「ソリューションディレクトリを作成」のチェックは、はずしてもOKです。


次に表示される画面で、左の枠から「アプリケーションの設定」を選択し、追加のオプションを「空のプロジェクト」にチェックします。こうしないとWindowsお勧めのお約束の雛形みたいなファイルが作られてしまい、何がC++コンソールプログラミングにおける最小要素かが分かり辛くなります。

さて、これでプロジェクトフォルダが出来ました。これはプログラムを作ってく上でファイルの保管場所になります。

ソースコードの追加


次にC++のソースコードを書くためのファイルを作成します。
左側のソリューションエクスプローラーから
ソースファイルを右クリックして→追加→新しい項目
を選択します。



左側から「コード」を選び、中央の枠から「C++ソースファイル(.cpp)」を選び、下の枠に名前を付けてから右下の追加ボタンを押します。(左側の枠がどうあれ、作るファイルがC++ファイルなら大丈夫です。)
付ける名前は全角でも半角でもOKな様ですが、念の為に半角にしておいた方がいい気がします・・・と助言するのは古い話でしょうか?



これで今名前を付けたC++のソースファイルが画面左のソリューションエクスプローラのソースファイルフォルダの中に入っている事が確認できると思います。

このファイルに

#include <stdio.h>
 int main()
 {
printf("こんにちわ世界!");

getchar();
 }
と書いてビルドして実行すると冒頭で挙げた画面が出るでしょう。

ビルドは[F7]キーを押すかメニューから「ソリューションのビルド」を選ぶと出来ます。この時ソースコードに誤りがあるとエラーが表示されます。エラーを訂正してからもう一度ビルドしましょう。 エラが-なければ[F5]キーを押すかメニューから「デバッグ」→「デバッグの開始」でプログラムを実行出来ます。
実行中のプログラムは、普通に黒いウインドウを閉じるかVC++上でShift+F5を押すかメニューの「デバッグ」→「デバッグの停止」を選択します。

ソースコード中に何かのミスで全角のスペースとかが混じってしまうと
「'0x3000': この文字を識別子で使用することはできません」
という様なエラーが表示されます。
その場合、全角スペースという見えない敵を探すハメになります。

ソースコードの説明


#include <stdio.h>
<stdio.h>は 標準Cライブラリの一つです。CやC++が使える環境なら、標準Cライブラリもだいたい使えるみたいです。標準Cライブラリに関しては様々なサイトで解説されています。例えばここ
プログラム内でprintf()やgetchar()という関数を使っているため、
#include <stdio.h>が必要です。

 int main()
 {
  ここに処理内容を既述
}
CやC++ではmain()という名前の関数からプログラムが開始する事になっています。


printf("こんにちわ世界!");
画面に文字を出力します。引数の設定次第で色々な書き方が出来ます。
詳細は例えばこのサイトとか。

getchar();
キーボードからの入力を得る関数です。ここではユーザーの入力を待つ意味で置いています。これがないとプログラムが一瞬で終了します。



0 件のコメント: