Windows環境でのC言語:プログラムの作成から実行まで
| 項目 | 内容 |
|---|---|
| 対象読者 | C言語を初めて学ぶ学生。Windowsの標準機能(メモ帳)を使って、手軽にC言語プログラミングの基礎を体験したい人。 |
| 前提条件 | Windowsの基本操作(ファイル作成、コマンドプロンプトの起動)ができること |
| 学習目標 | C言語のソースコードをコンパイルして実行できる。標準入力からデータを読み取るプログラムを作成できる。 |
【重要概念】
- テキストエディタ(メモ帳): 文字を入力・編集するためのソフトウェア。本資料ではWindowsに標準で搭載されている「メモ帳」を使用してプログラムを記述する。
- コンパイル: ソースコード(人間が読み書きするプログラム)を機械語(CPUが実行できる形式)に変換する処理。C言語では実行前にこの変換が必要である。
- コンパイラ(cl): コンパイルを行うプログラム。本資料ではMicrosoft Visual C++のコンパイラ「cl」を使用する。
- コマンドプロンプト: 文字で命令を入力する画面(黒い画面)。コンパイラのインストールや、作成したプログラムのコンパイル・実行に使用する。
- 拡張子 (.c): ファイルの種類を表す部分(ファイル名の末尾)。C言語のソースコードであることを示すために、保存時に「.c」を指定する必要がある。
- 実行ファイル (.exe): コンパイルによって生成される、直接実行可能なファイル。
【目次】
1. はじめに
この資料では、C言語のプログラムをWindowsで作成し、動かす方法を学ぶ。
- C言語のソースコードをコンパイルし、実行ファイル(.exe)を生成する
- キーボードから入力された文字のバイト数を数えるプログラムを作成する
プログラミングを始めようと思ったとき、「どのように操作したらよいのだろう」「専用のツールが必要なのでは」と不安になることがある。しかし、心配は不要である。Windowsに標準で搭載されているメモ帳と、無料でインストールできるVisual Studio Build Toolsがあれば十分である。
まずは簡単なプログラムから始める。「Hello, World!」と表示するプログラムを動かしたり、キーボードからの入力を処理するプログラムを実行したりできる。ここで学ぶメモ帳の使い方とプログラムのコンパイル・実行方法は、プログラミングの基礎となる重要な知識である。
2. コンパイルとは何か
C言語では、実行前にソースコードを機械語(CPUが実行できる形式)に変換する。この変換処理を「コンパイル」と呼ぶ。
作業手順
- コードを書く(hello.c)
cl hello.cでコンパイル → hello.exe が生成されるhello.exeで実行
コードを修正した場合は、再度コンパイルしてから実行する。
3. 最初のプログラム
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
各行の役割
| コード | 役割 |
|---|---|
#include <stdio.h> |
printf 関数を使うために必要 |
int main() |
プログラムの実行開始位置 |
printf("Hello, World!\n"); |
文字列を画面に出力する。\n は改行。末尾にセミコロンが必要。 |
return 0; |
プログラムの終了 |
上記のコードをテキストエディタで作成し、hello.c という名前で保存する。
4. 開発環境の準備
4.1 オンライン環境
インストール不要で、ブラウザ上でコンパイルと実行ができる。
- Online GDB: https://www.onlinegdb.com/
- C Tutor: https://pythontutor.com/c.html
VisuAlgo はアルゴリズムとデータ構造のデモサイト
- VisuAlgo のURL:https://visualgo.net
4.2 ローカル環境の構築
- Windowsで、管理者権限でコマンドプロンプトを起動する(手順:Windowsキーまたはスタートメニュー →
cmdと入力 → 右クリック → 「管理者として実行」) - winget(Windowsパッケージマネージャー)が利用可能か確認する:
winget --version
- 以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー →
cmdと入力 → 右クリック → 「管理者として実行」)。REM VC++ ランタイム winget install --scope machine --accept-source-agreements --accept-package-agreements --silent --id Microsoft.VCRedist.2015+.x64 REM Build Tools + Desktop development with C++(VCTools)+ 追加コンポーネント(一括) winget install --id Microsoft.VisualStudio.2022.BuildTools ^ --override "--passive --wait --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.ComponentGroup.ClangCL --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.Windows11SDK.26100"--addで追加されるコンポーネント上記のコマンドでは,まず Build Tools 本体と Visual C++ 再頒布可能パッケージをインストールし,次に setup.exe を用いて以下のコンポーネントを追加している。
VCTools:C++ デスクトップ開発ワークロード(--includeRecommendedにより、MSVC コンパイラ、C++ AddressSanitizer、vcpkg、CMake ツール、Windows 11 SDK 等の推奨コンポーネントが含まれる)VC.Llvm.Clang:Windows 向け C++ Clang コンパイラClangCL:clang-cl ツールセットを含むコンポーネントグループ(MSBuild から Clang を使用するために必要)VC.CMake.Project:Windows 向け C++ CMake ツールWindows11SDK.26100:Windows 11 SDK(ビルド 10.0.26100)
インストール完了の確認
winget list Microsoft.VisualStudio.2022.BuildTools上記以外の追加のコンポーネントが必要になった場合は Visual Studio Installer で個別にインストールできる。
4.3 インストールの確認
インストール完了後、スタートメニューから「x64 Native Tools Command Prompt for VS 2022」を検索し、起動できることを確認する。
5. メモ帳でのプログラム作成と保存
5.1 メモ帳の起動
- スタートメニュー(画面左下のWindowsマーク)をクリックする
- 「メモ帳」と入力する
- 「メモ帳」アプリが表示されるので、クリックして起動する
5.2 プログラムの入力
セクション3で示したプログラムを入力する(または貼り付ける)。
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
5.3 プログラムの保存
- 「ファイル」メニューから「名前を付けて保存」を選択する
- 保存場所を選ぶ。初心者には「デスクトップ」を推奨する
- 画面下の「ファイルの種類」を「すべてのファイル(*.*)」に変更する
- 初期設定の「テキスト文書(*.txt)」のままだと、ファイル名に自動的に「.txt」が追加されてしまい、「hello.c.txt」のようになってしまう。これを防ぐため、必ず「すべてのファイル(*.*)」に変更する
- ファイル名を「○○○.c」と入力する
- ○○○は任意の名前(例:hello)
- .cはC言語のソースコードであることを示す拡張子(ファイルの種類を表す部分)である。この拡張子により、ファイルがC言語のプログラムとして認識される
- 「保存」をクリックする
6. コンパイルと実行
6.1 開発者コマンドプロンプトの起動
スタートメニューから「x64 Native Tools Command Prompt for VS 2022」を選択する。
6.2 ソースコードのあるフォルダへ移動
cdコマンド(フォルダ間を移動する命令)を使用する。デスクトップに保存した場合は、以下のように入力する:
cd /d c:%HOMEPATH%\Desktop
または、ユーザー名を直接指定する場合:
cd C:\Users\ユーザー名\Desktop
フォルダ名にスペースや日本語が含まれる場合は、「"」で囲む。例:
cd "C:\Users\ユーザー名\Desktop\C言語練習"
6.3 コンパイル
cl hello.c
/out:hello.exe が表示されれば成功。error が表示された場合はソースコードに誤りがある。
6.4 実行
hello.exe
Hello, World! が表示されれば成功。
プログラム名は作成時に付けた名前である。大文字と小文字は区別されるため注意が必要である(「Hello.c」と「hello.c」は異なるファイルとして扱われる)。
7. キーボード入力のプログラム
キーボードから入力された文字のバイト数を数えるプログラムを作成する。
#include <stdio.h>
int main() {
int c;
int count = 0;
while ((c = getchar()) != EOF) {
count = count + 1;
}
printf("バイト数: %d\n", count);
return 0;
}
各行の解説
| コード | 解説 |
|---|---|
int c; |
読み取った文字を格納する変数 |
int count = 0; |
バイト数を数えるカウンタ |
while ((c = getchar()) != EOF) |
1バイト読み取り、EOF(End of File、入力の終わり)でなければループを続ける |
count = count + 1; |
カウンタを増やす |
printf("バイト数: %d\n", count); |
バイト数を出力する |
実行例
cl count.c
count.exe
a b c d
^Z
バイト数: 8
入力の終わりを伝えるには、行の先頭で Ctrl+Z を押し、Enter を押す。
8. よくあるエラーとその対処法
8.1 コンパイルエラー
エラーメッセージには行番号が含まれる。該当行を確認して修正し、再度コンパイルする。
例:hello.c(5): error C2065: 'prntf': undeclared identifier
→ 5行目の prntf が誤り(正しくは printf)
例:hello.c(4): error C2146: syntax error: missing ';' before identifier 'return'
→ 4行目の末尾にセミコロンが欠落している
8.2 「'cl' は内部コマンドまたは外部コマンド...」と表示される場合
- 通常のコマンドプロンプトではなく、「x64 Native Tools Command Prompt for VS 2022」を使用する必要がある
- スタートメニューから「x64 Native Tools」と検索して起動する
8.3 「No such file or directory」または「ファイルが見つかりません」と表示される場合
- cdコマンドでフォルダを正しく移動できていない可能性がある
- 「dir」と入力してEnterを押すと、現在のフォルダの内容が確認できる
- dirコマンド(ディレクトリ内容表示命令)は、現在いるフォルダに保存されているファイルやフォルダの一覧を表示する
- 目的のファイル(例:hello.c)が表示されることを確認する
- ファイル名の拡張子が「.c.txt」のようになっていないか確認する(保存時に「すべてのファイル」を選択していないと発生する)
8.4 リンクエラー(LNK2019, LNK1120など)
- 関数名のスペルミスがないか確認する
- 必要なヘッダファイル(#include文)が記述されているか確認する
8.5 「アクセスが拒否されました」と表示される場合
- 同名の実行ファイル(.exe)が実行中の場合に発生することがある
- 実行中のプログラムを終了してから再度コンパイルする
- 開発者コマンドプロンプトを管理者として実行する方法もある
8.6 文字化けが発生する場合
- ソースコード内に日本語を含む場合、文字コードの問題で文字化けが発生することがある
- メモ帳で保存する際に、文字コードを「UTF-8」に設定する
9. まとめ
| 項目 | 内容 |
|---|---|
| コンパイル | cl ファイル名.c |
| 実行 | ファイル名.exe |
| エラー対処 | エラーメッセージの行番号を確認して修正 |
| 入力終了 | Ctrl+Z → Enter |