
C言語の基本|コマンドラインと文字コード
CLIと文字コードを先に押さえて、C言語のコンパイルと日本語表示のつまずきを減らそう。
C言語の学習では、ソースコードを書く前後で「コマンドライン」と「文字コード」に触れる場面が出てきます。
最初は少し難しく見えるかもしれませんが、ここを早めに理解しておくと、あとで「コンパイルできない」「実行したのに日本語が変に表示される」といったつまずきをかなり減らせます。
コマンドラインは、文字で命令を入力してコンピュータを操作する画面です。C言語では、gccでコンパイルしたり、作成した実行ファイルを起動したりするときに使います。Windowsでは、コマンドプロンプトやPowerShellが代表的なコマンドライン環境です。
一方、文字コードは、文字をコンピュータの中で扱うためのルールです。VS CodeではUTF-8で保存することが多いですが、Windowsのコマンドプロンプトでは環境によってShift-JIS系の設定が使われることがあります。この違いが、日本語の文字化けにつながることがあります。
ここでは、CLIの基本、コマンドプロンプトとPowerShellの違い、Shift-JISとUTF-8の考え方、chcp 65001 による文字化け対策、そして日本語表示を確認するCプログラムまでを、順番に整理していきます。
まず押さえたい全体像
コマンドラインと文字コードは、別々の話に見えますが、C言語の学習ではしっかりつながっています。
C言語では、プログラムを書いたあとにコマンドでコンパイルし、実行結果を画面に表示します。その表示結果に日本語が含まれる場合、文字コードの設定が関係してきます。
| 項目 | 内容 | 目的 |
|---|---|---|
| CLIの基本 | CLIとは何か、何に使うか | C言語学習での役割を理解する |
| WindowsのCLI比較 | コマンドプロンプトとPowerShellの違い | どちらを使うか判断しやすくする |
| 文字コードの基本 | Shift-JISとUTF-8の違い | 文字化けの原因を理解する |
| 文字化け対策 | chcp 65001 の使い方 | Windowsで日本語を表示しやすくする |
| 動作確認 | 日本語表示のCプログラム | 実際に文字化けしないか確認する |
最初に全体像を見ておくと、C言語の実行環境で何を確認すればよいかが分かりやすくなります。
特に、VS Code、gcc、コマンドプロンプト、文字コードは、C言語学習の最初の段階で一緒に登場しやすいので、ここで整理しておきましょう。
図1:CLIでC言語を動かす基本の流れ

この図から分かること
C言語では、ソースコードを書くだけで終わりではありません。CLIを使ってgccにコンパイルを依頼し、作成された実行ファイルを起動して、結果を文字で確認します。最後に表示される文字が日本語の場合、文字コードの設定が合っていないと文字化けが起こることがあります。
CLIとは何か
CLIは、Command Line Interfaceの略です。
日本語では、コマンドラインインターフェースと呼ばれます。マウスでボタンを押して操作するGUIとは違い、キーボードから文字でコマンドを入力して、コンピュータに指示を出します。
たとえば、C言語の学習では次のような操作をCLIで行います。
- GCCのバージョンを確認する
- C言語のソースコードをコンパイルする
- 作成された実行ファイルを起動する
- エラーメッセージを確認する
- フォルダーを移動する
CLIは、最初は黒い画面に文字を入力するだけの少しそっけない道具に見えるかもしれません。
しかし、C言語の学習ではとても実用的です。コンパイルと実行の流れが見えやすく、エラーが出たときにも原因を確認しやすくなります。
C言語でCLIを使う理由
C言語のプログラムは、通常、ソースコードを書いただけでは実行できません。
人間が読めるC言語のコードを、コンピュータが実行できる形へ変換する必要があります。この変換をコンパイルといいます。
CLIでは、次のようなコマンドを使ってコンパイルや実行を行います。
| 操作 | 例 | 何をしているか |
|---|---|---|
| GCCの確認 | gcc -v | GCCのバージョンや設定を確認する |
| コンパイル | gcc check.c -o check | Cソースを実行ファイルに変換する |
| 実行 | check | 作成した実行ファイルを起動する |
| 文字コード変更 | chcp 65001 | cmdのコードページをUTF-8に切り替える |
CLIは、難しい特別な道具というより、C言語の作業を進めるための基本的な操作場所です。
最初は短いコマンドから慣れていけば大丈夫です。
Windowsでよく使うCLI
Windowsでよく使うCLIには、コマンドプロンプトとPowerShellがあります。
どちらでもC言語のコンパイルや実行はできますが、学習の最初はコマンドプロンプトのほうがシンプルで分かりやすいことが多いです。
| 項目 | コマンドプロンプト | PowerShell |
|---|---|---|
| 特徴 | シンプルで軽い | 高機能で自動化に強い |
| 表示名 | cmd、コマンドプロンプト | PowerShell |
| 学習初期の使いやすさ | 基本操作を覚えやすい | 機能が多く少し広い |
| C言語学習との相性 | コンパイルと実行に十分 | もちろん使用できる |
| 文字コードの注意 | コードページ設定の影響を受けやすい | バージョン差を意識すると安心 |
C言語を学び始めたばかりの段階では、まずコマンドプロンプトで gcc -v、gcc ファイル名.c -o 実行ファイル名、実行ファイルの起動ができるようになることを目標にするとよいです。
PowerShellは、より高度な操作や自動化にも使える便利なツールです。ただし、バージョンや設定によって文字コードの扱いが変わることがあるため、最初はcmdで説明をそろえると理解しやすくなります。
文字コードとは何か
文字コードは、文字をコンピュータの中で数値として扱うためのルールです。
コンピュータは内部で0と1を使って処理しています。そのため、A、B、あ、日、語といった文字も、コンピュータの中では決められた数値として扱われます。
文字コードは、次のように考えると分かりやすいです。
| たとえ | 実際の意味 |
|---|---|
| 辞書 | 文字と数値の対応表 |
| 翻訳ルール | どの数値をどの文字として読むかの約束 |
| 読み方の違い | 同じデータでも別の文字に見える原因 |
| 文字化け | 保存時と表示時のルールが合わないことで起きる表示崩れ |
大切なのは、文字化けが起きたとき、必ずしもプログラムのデータそのものが壊れているとは限らないということです。
多くの場合、保存したときの文字コードと、表示するときの文字コードが合っていないために、違う文字として解釈されてしまいます。
図2:文字コードと文字化けのしくみ

この図から分かること
文字化けは、文字そのものが突然壊れるというより、保存するときのルールと表示するときのルールがずれることで起こります。VS CodeでUTF-8として保存した日本語を、コマンドプロンプト側が別の文字コードとして解釈すると、実行結果の日本語が崩れて見えることがあります。
Shift-JISとUTF-8の違い
日本語を扱うときによく出てくる文字コードが、Shift-JISとUTF-8です。
どちらも日本語を扱えますが、使われる場面や相性に違いがあります。
| 項目 | Shift-JIS | UTF-8 |
|---|---|---|
| 主な利用場面 | 従来のWindows日本語環境 | 現在の開発環境やWeb全般 |
| 特徴 | 日本語Windowsで長く使われてきた | 多くのOSやWebで広く使われる |
| VS Codeとの相性 | 設定次第で使える | 既定として使われることが多い |
| コマンドプロンプトとの関係 | 日本語環境で使われることが多い | chcp 65001 で合わせられる |
| C言語学習での注意 | UTF-8のファイル表示でズレることがある | VS Codeで扱いやすい |
C言語の学習では、VS CodeでUTF-8としてソースコードを保存し、コマンドプロンプトで実行結果を表示する、という流れがよくあります。
このとき、コマンドプロンプト側がShift-JIS系の設定のままだと、日本語の表示が崩れることがあります。
たとえば、ソースコードの中で次のように日本語を表示する場合を考えます。
printf("日本語を表示します。\n");プログラムの内容は正しくても、表示する側の文字コード設定が合っていないと、実行結果が読みにくい文字列になってしまうことがあります。
文字化けが起きる原因
文字化けの原因はひとつではありませんが、C言語学習の最初によくあるのは、保存側と表示側の文字コードが合っていないケースです。
| 原因 | 例 | 起きること |
|---|---|---|
| 保存時の文字コードと表示側が違う | UTF-8で保存し、Shift-JIS系で表示 | 日本語が崩れる |
| CLIのコードページ設定が合わない | cmdの既定設定で日本語を表示 | 文字化けすることがある |
| 実行環境が違う | Windows、Linux、macOSで表示条件が違う | 同じプログラムでも結果が変わることがある |
| ファイルの保存形式が混在する | ファイルごとに文字コードが違う | 一部だけ表示がおかしくなることがある |
文字化けが起きたときは、すぐにC言語の文法ミスだと決めつけないことが大切です。
エラーではなく、表示設定の問題である可能性があります。
chcp 65001 でcmdをUTF-8に切り替える
Windowsのコマンドプロンプトでは、コードページという設定が表示結果に影響します。
コードページは、文字をどのルールで表示するかを決める番号のようなものです。
UTF-8に切り替えるときによく使うのが、次のコマンドです。
chcp 65001このコマンドの意味を分解すると、次のようになります。
| 部分 | 意味 |
|---|---|
| chcp | アクティブなコードページを変更するコマンド |
| 65001 | UTF-8を表すコードページ番号 |
つまり、chcp 65001 は、コマンドプロンプトの表示ルールをUTF-8に切り替えるためのコマンドです。
VS CodeでUTF-8として保存したCプログラムを実行するとき、cmd側もUTF-8に合わせておくと、日本語が文字化けしにくくなります。
chcp 65001 を使う流れ
実際には、Cプログラムを実行する前に、コマンドプロンプトで次のように操作します。
chcp 65001そのあとで、コンパイルや実行を行います。
gcc encoding_check.c -o encoding_check
encoding_checkこの流れにすると、UTF-8で保存されたソースコードの日本語メッセージを、cmd側でもUTF-8として表示しやすくなります。
図3:cmdをUTF-8に切り替えて日本語を表示する流れ

この図から分かること
chcp 65001 は、cmdの文字コード設定をUTF-8に合わせるためのコマンドです。VS CodeでUTF-8として保存したCプログラムを実行する前にこの設定を行うと、日本語の実行結果が文字化けしにくくなります。コンパイルと実行だけでなく、表示環境も整えることが大切です。
cmdを開き直すと設定が戻ることがある
chcp 65001 は、現在開いているコマンドプロンプトのコードページを変更するコマンドです。
そのため、cmdを閉じて新しく開くと、既定のコードページに戻ることがあります。
| 状態 | コードページの例 |
|---|---|
| 新しくcmdを開いた直後 | 日本語環境では932系の場合がある |
| chcp 65001 実行後 | UTF-8になる |
| cmdを閉じて再度起動 | 既定値に戻ることがある |
この動きを知っておくと、「昨日は日本語が表示できたのに、今日はまた文字化けする」というときにも落ち着いて対応できます。
Cプログラムを実行する前に、必要に応じて chcp 65001 をもう一度実行すれば大丈夫です。
PowerShellを使う場合の補足
PowerShellでもC言語のコンパイルや実行はできます。
ただし、PowerShellはバージョンによってエンコードの扱いが違うことがあります。Windows PowerShell 5.1とPowerShell 7系では、既定のエンコード挙動に違いがあるため、文字コードの説明が少し複雑になります。
学習の最初は、まずコマンドプロンプトで次の流れに慣れると分かりやすいです。
- gcc -v でGCCを確認する
- chcp 65001 でUTF-8に切り替える
- gcc ファイル名.c -o 実行ファイル名 でコンパイルする
- 実行ファイルを起動する
- 日本語の表示を確認する
PowerShellは、cmdで基本操作に慣れてから使い始めても遅くありません。
もちろん、PowerShellを使っても問題ありませんが、教材の最初ではcmdにそろえると説明を追いやすくなります。
macOSとLinuxの場合
macOSやLinuxのターミナルでは、最近の環境ではUTF-8が前提になっていることが多いです。
そのため、Windowsのcmdほどコードページを意識しなくても、日本語がそのまま表示できる場合があります。
ただし、どのOSでも考え方は同じです。
- ソースコードをどの文字コードで保存しているか
- ターミナルがどの文字コードで表示しているか
- コンパイル時や実行時に文字がどう扱われているか
日本語が崩れたときは、C言語の文法だけでなく、ファイルの保存文字コードとターミナルの表示設定も確認する、という考え方を持っておくと役立ちます。
CLIで日本語表示を確認するプログラム
ファイル名:encoding_check.c
#include <stdio.h>
int main(void)
{
printf("CLIで日本語表示を確認します。\n");
printf("文字コードが合っていれば、正しく読めます。\n");
printf("C言語の学習を少しずつ進めましょう。\n");
return 0;
}実行結果の例
CLIで日本語表示を確認します。
文字コードが合っていれば、正しく読めます。
C言語の学習を少しずつ進めましょう。このプログラムは、C言語の実行結果として日本語が正しく表示されるかを確認するための例です。
プログラムの処理自体はとてもシンプルで、printf を使って3行の日本語メッセージを表示しています。
| 行 | 内容 | 役割 |
|---|---|---|
| #include <stdio.h> | 標準入出力の準備 | printf を使えるようにする |
| int main(void) | プログラムの開始地点 | Cプログラムの実行入口 |
| printf(...) | 文字列を表示 | 日本語が正しく表示されるか確認する |
| return 0; | 正常終了を表す | プログラムを終了する |
このプログラムでは、日本語の文字列を含んでいるため、文字コードの確認に向いています。
VS CodeでUTF-8として保存し、cmdで chcp 65001 を実行してからコンパイル・実行すると、日本語が正しく表示されるか確認しやすくなります。
コンパイルと実行の手順
encoding_check.c を保存したら、コマンドプロンプトでファイルのあるフォルダーへ移動し、次の順番で実行します。
chcp 65001
gcc encoding_check.c -o encoding_check
encoding_checkそれぞれの意味は次のとおりです。
| コマンド | 用途 |
|---|---|
| chcp 65001 | cmdをUTF-8に切り替える |
| gcc encoding_check.c -o encoding_check | Cファイルをコンパイルして実行ファイルを作る |
| encoding_check | 作成した実行ファイルを起動する |
コンパイル時にエラーが出なければ、encoding_check.exe が作成されます。
そのあと encoding_check を実行し、日本語メッセージが正しく表示されれば、CLIと文字コードの確認はうまくできています。
よく使うコマンドを整理する
C言語の学習を始める段階では、まず次のコマンドに慣れておくと十分です。
| コマンド | 用途 |
|---|---|
| gcc -v | GCCのバージョンや設定を確認する |
| chcp 65001 | cmdをUTF-8に切り替える |
| gcc encoding_check.c -o encoding_check | Cファイルをコンパイルする |
| encoding_check | 実行ファイルを起動する |
この4つを使えるようになると、C言語の基本的な学習が進めやすくなります。
最初はコマンドを暗記しようとするより、「何のために入力しているのか」を意識すると理解しやすいです。
文字化けしたときの確認ポイント
日本語が文字化けしたときは、次の順番で確認すると整理しやすいです。
| 確認項目 | 見るポイント |
|---|---|
| VS Codeの保存文字コード | UTF-8で保存されているか |
| cmdのコードページ | chcp 65001 を実行したか |
| cmdを開き直していないか | 開き直すと設定が戻ることがある |
| プログラムの文字列 | 日本語部分が正しく入力されているか |
| 実行しているファイル | 古い実行ファイルを動かしていないか |
C言語の学習では、エラーと文字化けを分けて考えることが大切です。
コンパイルエラーはC言語の書き方に問題があることが多いですが、文字化けは表示環境の文字コード設定が原因になっていることがあります。
CLIと文字コードに慣れておくと、次に学ぶ「コンパイルして実行する」作業がぐっと進めやすくなります。C言語では、コマンドを入力し、結果を読み取り、少しずつ修正していく流れが基本になります。最初は短いコマンドと短いプログラムから始めて、確実に動く感覚をつかんでいきましょう。
