C言語の基本|保存用ディレクトリーを作成する

保存場所を整えると、C言語の練習はもっと分かりやすく、もっと続けやすくなります。

C言語の学習を進めていくと、少しずつソースファイルが増えていきます。
最初は hello.c のような短いファイルだけなので困りにくいですが、章ごと、練習ごとにファイルを作るようになると、「どこに保存したのか」「どのファイルをコンパイルすればよいのか」が分かりにくくなってきます。

そこで大切になるのが、保存用ディレクトリーを作って、学習ファイルを整理することです。
ディレクトリーとは、Windowsでいうフォルダーのことです。C言語の練習では、章ごとやテーマごとにディレクトリーを分けておくと、ソースファイル、実行ファイル、練習内容を管理しやすくなります。

ここでは、C:\cwork の中に chap03 という保存用ディレクトリーを作り、その中にC言語のソースファイルを保存します。そして、GCCでコンパイル・リンクし、最後に実行して結果を確認するところまで進めます。

この作業で身につくのは、単にプログラムを動かす手順だけではありません。
保存場所を決める習慣、カレントディレクトリーを確認する習慣、エラーが出たときに落ち着いて直す習慣も、いっしょに身につけていきます。

まず全体の流れを確認する

最初に、今回の作業全体を見ておきましょう。
C言語では、ソースファイルを作る場所と、コマンドを実行する場所を意識することがとても大切です。

手順内容使うもの
1cwork に移動するコマンドプロンプト または VS Codeターミナル
2chap03 ディレクトリーを作るmd コマンド
3chap03 に移動するcd コマンド
43_5_1.c を作成するVS Code
5ソースコードを入力して保存するVS Code
6GCCでコンパイル・リンクするgcc コマンド
7文字コードをUTF-8にするchcp 65001
8実行ファイルを起動するコマンドプロンプト

流れとしては、次のようになります。

C:\cwork に移動
   ↓
chap03 を作成
   ↓
chap03 に移動
   ↓
VS Codeで 3_5_1.c を作成・保存
   ↓
gcc でコンパイル・リンク
   ↓
chcp 65001
   ↓
実行して結果を確認

図1:保存用ディレクトリーを作って実行する流れ

この図から分かること

C言語の学習では、ファイルを作る前に保存場所を決めておくと、作業が分かりやすくなります。chap03 のように章ごとのディレクトリーを作ることで、ソースファイルや実行ファイルを整理しながら学習できます。

コマンドプロンプトを起動する

まず、コマンドプロンプトを起動します。
Windowsのスタートメニューで cmd と入力し、Enterキーを押すと起動できます。

起動すると、次のような表示になります。

C:\Users\ユーザー名>

この表示は、現在どの場所で作業しているかを表しています。
この「今いる場所」のことを、カレントディレクトリーといいます。

用語意味
コマンドプロンプトコマンドを入力して操作する画面
カレントディレクトリー現在作業している場所
プロンプトコマンド入力待ちを示す表示

C言語のコンパイルでは、カレントディレクトリーがとても重要です。
ソースファイルがある場所で gcc を実行しないと、ファイルが見つからないエラーになることがあります。

cd コマンドで cwork に移動する

次に、作業用ディレクトリーである C:\cwork に移動します。
入力するコマンドは次の通りです。

cd \cwork

移動後、表示が次のようになればOKです。

C:\cwork>

この操作の意味を分解すると、次のようになります。

コマンド意味
cdカレントディレクトリーを変更する
\cworkCドライブ直下の cwork ディレクトリー

ここで cwork に移動しておくことで、このあと作成する chap03 ディレクトリーを C:\cwork の中に作れます。

md コマンドで chap03 ディレクトリーを作成する

次に、3章の練習ファイルを保存するための chap03 ディレクトリーを作ります。

入力するコマンドは次の通りです。

md chap03

md は、make directoryの意味を持つコマンドで、新しいディレクトリーを作るときに使います。

項目内容
役割新しいディレクトリーを作成する
書き方md ディレクトリー名
今回の例md chap03
作成される場所C:\cwork\chap03

この操作を行うと、C:\cwork の中に chap03 が作成されます。
章ごとにディレクトリーを分けると、あとでファイルを探しやすくなります。

cd chap03 で作成したディレクトリーに移動する

作成した chap03 に移動します。
入力するコマンドは次の通りです。

cd chap03

移動後、表示が次のようになれば成功です。

C:\cwork\chap03>

これで、今回のプログラムファイルを保存する場所に移動できました。

ここで注意したいのは、cd \chap03 ではなく、cd chap03 と入力する点です。

コマンド動き
cd chap03今いる C:\cwork の中にある chap03 へ移動する
cd \chap03Cドライブ直下の chap03 を探そうとする

すでに C:\cwork にいるため、今回は cd chap03 と入力します。
この違いは、カレントディレクトリーを意識するよい練習になります。

ここまでのコマンドをまとめて確認する

ここまで入力したコマンドを並べると、次のようになります。

cd \cwork
md chap03
cd chap03

実行イメージは次の通りです。

C:\Users\ユーザー名>cd \cwork
C:\cwork>md chap03
C:\cwork>cd chap03
C:\cwork\chap03>

このように C:\cwork\chap03> と表示されていれば、保存用ディレクトリーの準備はできています。

図2:cworkの中にchap03を作成するイメージ

この図から分かること

C:\cwork の中に chap03 を作ることで、3章の練習ファイルをまとめて保存できます。コマンドプロンプトでは、今いる場所を確認しながら cd と md を使うことが大切です。保存場所が決まっていると、コンパイル時のファイル指定も分かりやすくなります。

VS Codeで chap03 フォルダーを確認する

次に、VS Codeでソースファイルを作成します。
すでに cwork をVS Codeで開いている場合は、左側のエクスプローラーに chap03 が表示されるはずです。

作業のポイントは次の通りです。

  • ワークスペースは cwork のままでよい
  • 左側のエクスプローラーで chap03 を確認する
  • chap03 の中にソースファイルを作る
  • 保存先が chap03 になっているか確認する

よくあるミスも先に見ておきましょう。

ミスどうなるか対策
chap03 を選ばずにファイルを作る別の場所にソースファイルができるVS Code左側の選択位置を確認する
cwork を開いていないchap03 が見えないまず cwork をVS Codeで開く
ファイル名を間違えるコンパイル時に見つからないファイル名とコマンドをそろえる
保存し忘れる古い内容のままコンパイルされる入力後に必ず保存する

ソースファイル 3_5_1.c を作成する

chap03 の中に、新しいC言語のソースファイルを作成します。

手順は次の通りです。

  • VS Codeの左側で chap03 を選ぶ
  • 新しいファイル アイコンをクリックする
  • ファイル名に 3_5_1.c と入力する
  • Enterキーで確定する
  • chap03 の中に作成されたことを確認する

3_5_1.c のような名前は、学習用のファイル名としてよく使われます。
これは「3章5節1つ目の例」のように、教材の位置と対応させやすいからです。

ファイル名使い方
3_5_1.c章番号や節番号に合わせた学習用の名前
practice01.c練習番号で管理する名前
message.c内容が分かる名前
test.c一時的な確認用の名前

実務では内容が分かる名前を付けることが多いですが、学習では章番号ベースの命名も便利です。

chap03の練習メッセージを表示するプログラム

ファイル名:3_5_1.c

// chap03の練習メッセージを表示するプログラム
#include <stdio.h>

int main(void)
{
    printf("こんにちは。chap03のC言語練習です。\n");
    printf("保存用ディレクトリーを作って学習ファイルを整理します。\n");
    printf("コンパイルして、実行結果を確認しましょう。\n");

    return 0;
}

実行結果の例

こんにちは。chap03のC言語練習です。
保存用ディレクトリーを作って学習ファイルを整理します。
コンパイルして、実行結果を確認しましょう。

このプログラムは、日本語のメッセージを3行表示するシンプルな例です。
内容は短いですが、C言語の基本であるコメント、ヘッダーファイルの読み込み、main 関数、printf、return 0; が含まれています。

内容役割
// chap03の練習メッセージを表示するプログラムコメントプログラムの説明を書く。実行には影響しない
#include <stdio.h>ヘッダーファイルの読み込みprintf を使うために必要
int main(void)プログラムの入口C言語ではここから実行が始まる
printf(...)文字列の表示画面に日本語メッセージを出す
\n改行表示を次の行へ送る
return 0;正常終了プログラムが問題なく終了したことを示す

入力するときは、次の点に注意しましょう。

  • セミコロン ; を忘れない
  • ダブルクォーテーション " を閉じ忘れない
  • 記号は半角で入力する
  • 日本語入力中に全角記号を入れない
  • 入力後は必ず保存する

printf の行は、文章だけを変えれば別のメッセージにできます。
慣れてきたら、自分の学習内容に合わせて表示文を少し変えてみるとよい練習になります。

GCCでコンパイル・リンクする

ソースコードを保存したら、コマンドプロンプトに戻ってコンパイルします。
まず、カレントディレクトリーが次の場所になっていることを確認してください。

C:\cwork\chap03>

この状態で、次のコマンドを入力します。

gcc 3_5_1.c -o 3_5_1

この1行で、コンパイルとリンクがまとめて行われます。

部分意味
gccC言語のコンパイラを起動する
3_5_1.cコンパイル対象のソースファイル
-o 3_5_1出力する実行ファイル名を指定する

Windowsでは、実際に作成される実行ファイルは 3_5_1.exe になります。

コンパイルが成功すると、基本的には何も表示されず、次のようにプロンプトへ戻ります。

C:\cwork\chap03>gcc 3_5_1.c -o 3_5_1
C:\cwork\chap03>

何も表示されないと不安になるかもしれませんが、エラーメッセージが出ていなければ成功していることが多いです。
VS Codeのエクスプローラーを見ると、3_5_1.exe が追加されているはずです。

コンパイルに失敗したときの見方

コンパイルに失敗すると、エラーメッセージが表示されます。
最初のうちはエラーが出るのは普通なので、落ち着いて確認しましょう。

よくある原因は次の通りです。

原因
セミコロン忘れprintf の行末に ; がない
ファイル未保存VS Codeで修正した内容が保存されていない
全角記号全角の ; や ” が混ざっている
綴りミスprintf や return のスペルミス
ファイル名違い3_5_1.c ではない名前で保存している

対処の流れは次の通りです。

手順内容
1エラーメッセージの行番号を見る
2指定された行と、その前後を確認する
3セミコロン、括弧、ダブルクォーテーション、綴りを見直す
4VS Codeで修正する
5保存する
6もう一度 gcc 3_5_1.c -o 3_5_1 を実行する

C言語は、エラーを直しながら覚えていく言語です。
1回でうまくいかなくても大丈夫です。エラー文は、直す場所を教えてくれるヒントとして使いましょう。

実行前に文字コードをUTF-8に変更する

今回のプログラムは日本語メッセージを表示します。
そのため、コマンドプロンプトの文字コード設定によっては、実行結果が文字化けすることがあります。

日本語表示を安定させるために、実行前に次のコマンドを入力します。

chcp 65001

実行後、次のような表示が出ればOKです。

Active code page: 65001

65001 はUTF-8を表すコードページ番号です。
VS CodeでUTF-8として保存したソースファイルを、コマンドプロンプト側でもUTF-8として表示しやすくなります。

コマンド意味
chcpコードページを確認・変更する
65001UTF-8を表すコードページ番号
chcp 65001コマンドプロンプトをUTF-8表示へ切り替える

注意点として、コマンドプロンプトを閉じて開き直すと設定が戻ることがあります。
日本語を表示する練習では、毎回最初に chcp 65001 を実行する習慣をつけると安心です。

図3:コンパイル・文字コード設定・実行の流れ

この図から分かること

日本語メッセージを表示するCプログラムでは、コンパイルだけでなく、実行前の文字コード設定も大切です。gcc 3_5_1.c -o 3_5_1 で実行ファイルを作成し、chcp 65001 でUTF-8に切り替えてから実行すると、日本語が正しく表示されやすくなります。

実行する

準備ができたら、実行ファイル名を入力してプログラムを実行します。

3_5_1

実行結果は次のようになります。

こんにちは。chap03のC言語練習です。
保存用ディレクトリーを作って学習ファイルを整理します。
コンパイルして、実行結果を確認しましょう。

この表示が出れば成功です。
自分で作ったディレクトリーの中にソースファイルを保存し、コンパイルして実行できたことになります。

今回の作業で特に大切なこと

今回の作業では、次の4つをしっかり押さえておきましょう。

ポイント内容
保存場所を先に作るchap03 のように分けるとファイル管理が楽になる
カレントディレクトリーを意識するどこでコマンドを実行しているか確認できる
GCC 1行でコンパイルとリンクができるgcc 3_5_1.c -o 3_5_1 の形に慣れる
日本語表示の前に文字コードを確認するchcp 65001 で文字化けを防ぎやすくする

特に、カレントディレクトリーを確認する習慣はとても大切です。
ファイルが見つからない、実行ファイルが作られない、別の場所で作業していた、というトラブルを減らせます。

コマンド履歴を使うと作業が速くなる

コマンドプロンプトでは、矢印キーで過去に入力したコマンドを呼び出せます。
これは、コンパイルを何度も繰り返すC言語学習でとても便利です。

キー役割
↑キー前に入力したコマンドを呼び出す
↓キー次の履歴に進む

たとえば、次のコマンドを何度も使う場面があります。

gcc 3_5_1.c -o 3_5_1

プログラムを修正するたびにこのコマンドを打ち直すのは大変です。
↑キーで履歴を呼び出せば、Enterキーを押すだけで再実行できます。

C言語の学習は、次のサイクルを何度も回します。

コードを書く
   ↓
保存する
   ↓
コンパイルする
   ↓
実行する
   ↓
結果を見る
   ↓
必要なら修正する

コマンド履歴を使えるようになると、このサイクルがかなり楽になります。
保存用ディレクトリーを分ける習慣と、コマンド履歴を使う習慣を身につけると、これからのC言語学習を落ち着いて進めやすくなります。