
C言語のきほん|画面表示とキーボード入力
表示できる、入力できる。ここからC言語のプログラムが“会話できる”ようになる。
ここまでの学習でも、画面に文字や数値を表示するプログラムは少しずつ書いてきたと思います。
ただ、C言語での画面表示やキーボード入力には、実は大事なルールやコツがいくつかあります。
このテーマをしっかり押さえると、プログラムがただ計算するだけでなく、人にメッセージを見せたり、入力を受け取って動きを変えたりできるようになります。
つまり、いよいよ「やり取りできるプログラム」に進んでいけるわけですね。
ここでは、まず画面表示の基本として printf関数 を中心に説明し、そのあとでキーボード入力の考え方も含めて、C言語の標準入出力の入口をやさしく整理していきます。
最初は用語が少し多く見えるかもしれませんが、ひとつずつ見れば大丈夫です。実際のコード例といっしょに、ゆっくり慣れていきましょう。
画面表示とキーボード入力は標準入出力の基本
C言語では、画面への表示やキーボードからの入力を、標準入出力 という仕組みで扱います。
- 標準入力:キーボードなどからプログラムへ入ってくる情報
- 標準出力:プログラムから画面へ表示する情報
まずはイメージでつかむとわかりやすいです。

このうち、今回の前半で中心になるのが 画面表示(標準出力) です。
C言語では、画面に文字や数値を表示するときによく使うのが printf関数 です。
printf関数とは
printf関数は、画面に文字や数値を表示するための関数です。
C言語で最もよく使う関数のひとつなので、ここでしっかり慣れておくと後の学習がかなり楽になります。
関数というのは、特定の処理をまとめたものです。
イメージとしては、入力を渡すと仕事をしてくれる小さな部品のようなものです。
関数のイメージ
表示したい値(引数)
↓
printf関数
↓
画面に文字が表示される
printf の f は format の意味で、表示の形式を指定できるのが特徴です。
たとえば、整数として表示するのか、小数として表示するのか、文字として表示するのかを指定できます。
printf関数を使うために必要なもの
printf関数を使うには、プログラムの先頭に次の1行を書きます。
#include <stdio.h>この stdio.h は、標準入出力に関する関数を使うための準備です。
printf だけでなく、あとで学ぶ入力用の関数でも使います。
printf関数の基本の形
printf関数は、次のような形で使います。
printf("出力する文字列");また、数値などを埋め込んで表示したいときは、変換指定を使って次のように書きます。
printf("書式文字列", 表示する値);ここでのポイントは2つです。
- 書式文字列:どう表示するかを書く(文字列 + 変換指定)
- 表示する値:実際に表示したいデータ
たとえば、整数を表示したいなら %d を使います。
printf("数値は %d です\n", 10);まずは文字列だけを表示してみる
最初は、変換指定を使わずに文字列だけを表示するところから始めるのがわかりやすいです。
ご提示のサンプルを、内容を少し変えたシンプルな例にしてみます。
メッセージは別の日本語にし、コメントも日本語にしています。
サンプルプログラム(改行あり)
ファイル名:5_1_1.c
#include <stdio.h>
int main(void)
{
/* 3行のメッセージを順番に表示する */
printf("C言語の学習を始めましょう\n");
printf("まずは画面表示に慣れていきます\n");
printf("1つずつ丁寧に進めれば大丈夫です\n");
return 0;
}実行結果例
C言語の学習を始めましょう
まずは画面表示に慣れていきます
1つずつ丁寧に進めれば大丈夫ですこの例では、printf関数を3回呼び出して、3行の文字列を表示しています。
改行しないとどうなるか
次に、同じようなコードで \n を付けない場合を見てみます。
ここが初心者のうちにかなり大事なポイントです。
サンプルプログラム(改行なし)
ファイル名:5_1_2.c
#include <stdio.h>
int main(void)
{
/* 改行を入れずに連続で表示する */
printf("C言語の学習を始めましょう");
printf("まずは画面表示に慣れていきます");
printf("1つずつ丁寧に進めれば大丈夫です");
return 0;
}実行結果例
C言語の学習を始めましょうまずは画面表示に慣れていきます1つずつ丁寧に進めれば大丈夫です見ての通り、1行につながって表示されます。
つまり、改行するかどうかは自動ではなく、自分で指定する必要がある ということです。
\n はエスケープシーケンス
ここで出てきた \n は、エスケープシーケンスと呼ばれる特別な書き方です。
見た目は2文字ですが、C言語では「改行」という1つの意味を持つ記号として扱います。
よく使うエスケープシーケンスを表で整理するとこんな感じです。
| 書き方 | 意味 |
|---|---|
| \n | 改行 |
| \t | タブ |
| \ | バックスラッシュ |
| " | ダブルクォーテーション |
例:タブを使う
printf("名前\t点数\n");
printf("田中\t90\n");このように書くと、項目の区切りをそろえやすくなります。
printf関数の変換指定を使って値を表示する
文字列だけでなく、変数の中に入った値も printf で表示できます。
このときに使うのが変換指定です。
代表的なものを先に見ておきましょう。
| 変換指定 | 意味 | 例 |
|---|---|---|
| %d | int型の整数 | 123 |
| %f | 浮動小数点数 | 3.14 |
| %c | 1文字 | A |
| %s | 文字列 | Hello |
ここは今後何度も使うので、最初は %d と %s をよく使う、くらいの感覚で大丈夫です。
サンプルプログラムで数値も表示してみる
文字列だけでなく、数値を表示する例も見てみましょう。
サンプルプログラム(変換指定あり)
ファイル名:5_1_3.c
#include <stdio.h>
int main(void)
{
/* 学習時間と目標ページ数を用意する */
int study_minutes = 45;
int target_pages = 12;
/* 変換指定を使って値を表示する */
printf("今日の学習時間は %d 分です\n", study_minutes);
printf("今日の目標ページ数は %d ページです\n", target_pages);
return 0;
}実行結果例
今日の学習時間は 45 分です
今日の目標ページ数は 12 ページですこのように、文字列の中に %d を入れて、そのあとに表示したい変数を書きます。
書式文字列の %d と、後ろに渡す値の順番は対応しているので、順番をそろえるのが大切です。
printf関数の引数と返却値
ここは少しだけ「関数らしさ」の話です。
printf関数は、表示するだけでなく、返却値 も返します。
- 引数:printf に渡す情報(書式文字列や表示する値)
- 返却値:printf が処理した結果として返す値
printf の返却値は、通常は 出力した文字数 です。
入門の段階ではあまり使わないことも多いですが、関数の基本を理解するうえで知っておくとよいポイントです。
返却値の例(参考)
ファイル名:5_1_4.c
#include <stdio.h>
int main(void)
{
int printed_count;
/* printfの返却値(表示した文字数)を受け取る */
printed_count = printf("こんにちは\n");
printf("上の行で表示した文字数は %d 文字です\n", printed_count);
return 0;
}この例のように、printf の結果を変数で受け取ることもできます。
ただし、まずは「表示するための関数」として慣れていけば十分です。
キーボード入力の基本的な考え方
ここからは「入力」の話です。
この節の中心は画面表示ですが、章全体としてはキーボード入力も大切なテーマなので、ここで基本の考え方を整理しておきます。
キーボード入力では、ユーザーが入力した文字や数値をプログラムが受け取り、その値を使って処理を進めます。
イメージはこんな感じです。
「年齢を入力してください」と表示
↓
ユーザーがキーボードで入力
↓
プログラムが値を受け取る
↓
その値を使って結果を表示

この流れができるようになると、プログラムが一気に実用的になります。
入力と出力はセットで考えるとわかりやすい
実際のプログラムでは、入力だけ、出力だけというより、セットで使うことが多いです。
たとえば、次のような流れです。
- printfで案内メッセージを表示する
- キーボードから値を入力してもらう
- 入力された値を使って計算する
- printfで結果を表示する
この流れを意識すると、なぜ画面表示の学習が大事なのかが見えてきます。
入力の前には、ユーザーに何を入力してほしいかを表示する必要があるからです。
画面表示でよくあるつまずきポイント
\n の付け忘れ
かなりよくあるのがこれです。
改行を入れないと、表示がくっついて読みにくくなります。
特に、複数の printf を連続で書くときは、どこで改行するかを意識しておくのがコツです。
%d などの変換指定と値の対応ミス
たとえば %d を2個書いたのに、値を1個しか渡していない、というような書き方はミスのもとです。
書式文字列に書いた変換指定の数と、後ろに渡す値の数はそろえるようにしましょう。
型に合わない変換指定を使う
- int型なのに %f を使う
- 文字列なのに %d を使う
このようなミスマッチは、表示がおかしくなる原因になります。
最初は、int なら %d、文字列なら %s、という基本だけでもしっかり押さえると安心です。
日本語表示での補足
日本語を表示するプログラムでは、実行環境によって文字化けすることがあります。
これはC言語そのものというより、ターミナルの文字コード設定 の影響です。
Windowsの環境では、ターミナル側の設定によっては UTF-8 に合わせる必要があることがあります。
学習中に日本語が文字化けしたら、コードが間違っているとは限らないので、まずは実行環境の文字コードも確認してみてください。
これから先につながる大事な土台
画面表示の基本はシンプルに見えますが、ここで学ぶことはこの先ずっと使います。
- printfで状況を表示する
- 入力を促すメッセージを出す
- 結果を見やすく整形して表示する
こうしたことが自然にできるようになると、デバッグもしやすくなりますし、ユーザーにわかりやすいプログラムも作れるようになります。
特に printf は、学習の初期だけでなく、実務でも確認表示やログ出力の基礎としてよく使います。
まずは、文字列の表示、改行、%d を使った整数の表示、この3つをしっかり使えるようになれば十分いいスタートです。
