カテゴリ: C言語 更新日: 2025/12/15

C言語のprintfとscanfの使い方を完全ガイド!初心者でもわかる入出力処理

C言語のprintfとscanfの使い方を初心者向けに解説
C言語のprintfとscanfの使い方を初心者向けに解説

先生と生徒の会話形式で理解しよう

生徒

「C言語で画面に文字を表示したり、数字を入力したりする方法はありますか?」

先生

「もちろんあります。C言語では、printfという命令で画面に文字や数字を表示できます。また、scanfという命令を使うとキーボードから入力した値を読み取れます。」

生徒

「なんだか便利そうですね。具体的にはどう使うんですか?」

先生

「それでは、基本的な使い方を見ていきましょう!」

1. printfで画面に文字を表示しよう

1. printfで画面に文字を表示しよう
1. printfで画面に文字を表示しよう

C言語では、画面に表示することを標準出力(ひょうじゅんしゅつりょく)と呼びます。標準出力とは、プログラムが結果を伝えるための方法で、主に画面に文章や数字を表示します。画面に文字を出すための命令がprintfです。プログラムの動作確認やデバッグでも頻繁に使われるため、C言語の学習では必ず覚える必要があります。

例えば、下のような簡単なプログラムで、文章を表示できます。


#include <stdio.h>

int main(void)
{
    printf("こんにちは、C言語!\n");
    return 0;
}

このプログラムを実行すると、画面には次のように表示されます。


こんにちは、C言語!

このように、printfの括弧の中に表示したい文字を入れれば、画面に文字が出ます。文字の最後にある\nは、改行(かいぎょう)を意味します。改行とは、次の行に移動するための特殊な記号のことです。

2. printfで数値を表示しよう

2. printfで数値を表示しよう
2. printfで数値を表示しよう

文字だけでなく、数字を表示することもできます。例えば、計算結果を表示したいときや、変数の中身を確認したいときに便利です。しかし、数字を表示するときは%d%fといった変換指定子(へんかんしていし)を使います。これは、表示したいデータの種類を指定する記号です。

代表的な変換指定子は次のとおりです。

  • %d … 整数(せいすう)を表示するときに使う記号
  • %f … 小数を表示するときに使う記号

#include <stdio.h>

int main(void)
{
    int a = 10;
    float b = 3.14;
    printf("整数は%dです。\n", a);
    printf("小数は%fです。\n", b);
    return 0;
}

整数は10です。
小数は3.140000です。

%d%fは、数字そのものを入れるのではなく、変換指定子を使って、横にある変数を表示する仕組みです。日本語と変数を混ぜたいときにも便利です。

3. scanfでキーボードから入力しよう

3. scanfでキーボードから入力しよう
3. scanfでキーボードから入力しよう

C言語では、キーボードから入力した値を受け取る方法としてscanfを使います。これは標準入力と呼ばれ、プログラムがユーザーの入力を読み取るときに利用します。

次の例では、整数の入力を受け取り、その値を画面に表示します。


#include <stdio.h>

int main(void)
{
    int age;
    printf("年齢を入力してください:");
    scanf("%d", &age);
    printf("あなたの年齢は%d歳です。\n", age);
    return 0;
}

年齢を入力してください:20
あなたの年齢は20歳です。

scanfで入力するときは、&を付けることが大切です。この記号はアドレス演算子(アドレスえんざんし)と呼ばれ、変数が保存されている場所を示します。scanfが入力を正しく保存するために必要になります。

4. 複数の値を入力するときは?

4. 複数の値を入力するときは?
4. 複数の値を入力するときは?

scanfは複数の入力を読み取ることもできます。例えば、整数と小数の両方を受け取る場合は、次のように書きます。


#include <stdio.h>

int main(void)
{
    int x;
    float y;

    printf("整数と小数を入力してください:");
    scanf("%d %f", &x, &y);
    printf("入力した整数は%d、小数は%fです。\n", x, y);

    return 0;
}

整数と小数を入力してください:5 2.5
入力した整数は5、小数は2.500000です。

入力をスペースで区切ると、複数の値をscanfで受け取ることができます。プログラムの質問に対して答えを入力すると、その結果を確認できるため、初心者の学習でもよく利用されます。

5. よくあるエラーと注意点

5. よくあるエラーと注意点
5. よくあるエラーと注意点

scanfを使うとき、特に初心者の方が間違えやすいポイントがあります。例えば、変換指定子と変数の型が合わない場合です。

整数を読み取るのに%fを使ったり、小数を読み取るのに%dを使ったりすると、正しく動きません。型が合っているか、毎回確認する癖を付けましょう。

また、scanfで文字列を受け取る方法もありますが、これはまた別の学習ステップで扱います。まずは整数と小数を入力して表示できるようになれば十分です。

まとめ

まとめ
まとめ

printfとscanfでできることを振り返ろう

ここまでの記事では、C言語における入出力処理の基本として、printfとscanfの使い方を順番に学んできました。 printfは、プログラムの中で計算した結果やメッセージを画面に表示するための命令で、動作確認や結果表示に欠かせない存在です。 文字列の表示だけでなく、変数の中身や計算結果を表示できるため、C言語の学習では最初に覚える重要な関数のひとつになります。

一方、scanfはキーボードから入力された値をプログラムに取り込むための命令です。 ユーザーが入力した数値を変数に保存し、その値を使って処理を進めることで、プログラムは一方通行ではなく、対話的な動きをするようになります。 printfとscanfを組み合わせることで、「質問を表示して入力を受け取り、結果を表示する」という基本的な流れが作れるようになります。

変換指定子と変数の関係を理解する

printfやscanfを使う上で特に大切なのが、変換指定子と変数の型を正しく対応させることです。 整数には%d、小数には%fといった決まりがあり、これを間違えると正しい結果が表示されなかったり、入力がうまく受け取れなかったりします。 プログラムが動かない原因の多くは、この指定子と型の不一致にあるため、初心者のうちは特に注意が必要です。

また、scanfでは変数の前に&を付ける必要がある点も重要でした。 これは、入力された値を「変数が保存されている場所」に直接書き込むための仕組みで、C言語らしい考え方のひとつです。 最初は難しく感じるかもしれませんが、「scanfは値を書き込む命令」と覚えると理解しやすくなります。

printfとscanfを組み合わせた基本サンプル

ここで、学んだ内容をまとめたシンプルなサンプルプログラムを確認してみましょう。 ユーザーに数字を入力してもらい、その結果を画面に表示する流れになっています。


#include <stdio.h>

int main(void)
{
    int x;
    int y;

    printf("一つ目の数字を入力してください:");
    scanf("%d", &x);

    printf("二つ目の数字を入力してください:");
    scanf("%d", &y);

    printf("入力した数字の合計は%dです。\n", x + y);

    return 0;
}

このプログラムでは、printfで入力を促し、scanfで値を受け取り、その結果を再びprintfで表示しています。 C言語の入出力処理の基本的な流れが一通り詰まった例なので、何度も見返して理解を深めておくと安心です。

先生と生徒の振り返り会話

生徒

「printfとscanfを使うと、画面に表示したり、キーボードから入力したりできるようになるんですね。 最初は難しそうでしたが、流れで見ると少し分かってきました。」

先生

「その感覚で大丈夫ですよ。C言語では、まず入出力の流れを理解することがとても大切です。 printfで何を表示して、scanfで何を受け取るのかを意識すると、プログラム全体が読みやすくなります。」

生徒

「変換指定子や&を忘れないようにするのがポイントですね。 エラーが出たときも、そこを確認すれば原因が分かりそうです。」

先生

「その通りです。入出力はC言語の基礎ですが、これが分かると条件分岐や繰り返し処理とも自然につながっていきます。 焦らず、printfとscanfを使った小さなプログラムを何度も書いて、慣れていきましょう。」

カテゴリの一覧へ
新着記事
New1
C++
C++の変数のスコープと有効範囲を完全解説!初心者でもわかる基本と考え方
New2
C++
C++とは?歴史と特徴を初心者向けに解説!Rustとの違いとモダン言語比較
New3
C++
MinGWとMSYS2でWindowsにC++環境を構築する方法を徹底解説!初心者でもできるセットアップガイド
New4
Rust
Rust開発環境をLinuxで構築する方法とおすすめ設定を初心者向けに徹底解説
人気記事
No.1
Java&Spring記事人気No1
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.2
Java&Spring記事人気No2
C言語
C言語の関数定義と呼び出しを完全ガイド!初心者でも分かる基本の書き方
No.3
Java&Spring記事人気No3
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.4
Java&Spring記事人気No4
C言語
Makefile入門:C言語プロジェクトを自動ビルドしよう!初心者でも分かる仕組みと使い方
No.5
Java&Spring記事人気No5
C言語
C言語の列挙型(enum)の使い方を完全ガイド!初心者でもわかる基本操作
No.6
Java&Spring記事人気No6
C言語
C言語の開発環境をWindowsに構築する方法【Visual Studio編】
No.7
Java&Spring記事人気No7
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.8
Java&Spring記事人気No8
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】