08_標準入力

08-1 はじめに

前回の学習では、printf() 関数を使って、標準出力装置(モニタ)にデータを表示しました。 C言語では、モニタもファイルと同じように扱い、プログラムから出力を行います。

今回は、標準入力装置(キーボード)を使って、プログラムがユーザーからデータを受け取る方法を学びます。 そのために使うのが scanf() という関数です。

この資料では scanf() の基本的な使い方から、複数の入力、実数や文字列の入力方法までを順を追って学びます。


08-2 scanf関数の基本

scanf("%d", &変数名);

例:整数を入力

#include <stdio.h>
int main(void) {
    int number;
    printf("整数を入力してください: ");
    scanf("%d", &number);
    printf("入力された値は %d です\n", number);
    return 0;
}

08-3 複数の値を読み取る

scanf("%d %d", &a, &b);

例:2つの整数を入力して合計

#include <stdio.h>
int main(void) {
    int x, y;
    printf("2つの整数を入力してください(空白で区切る): ");
    scanf("%d %d", &x, &y);
    printf("合計: %d\n", x + y);
    return 0;
}

08-4 実数や文字列の読み取り

書式指定子
int %d 整数
double %lf 実数(倍精度)
float %f 実数(単精度)※非推奨
char %c 1文字
文字列 %s 空白を含まない文字列

例:文字列を読み取る

#include <stdio.h>
int main(void) {
    char name[20];
    printf("名前を入力してください: ");
    scanf("%s", name);
    printf("こんにちは、%s さん!\n", name);
    return 0;
}

%s空白で区切られるまでを読み取ります。


08-5 演習問題

問題:三角形の面積を計算するプログラム

底辺と高さを scanf() を使って入力し、三角形の面積を表示するプログラムを書きなさい。

ヒント - 実数型(double)を使う - 面積の公式:(底辺 × 高さ) ÷ 2

正解例

#include <stdio.h>
int main(void) {
    double base, height;
    printf("底辺と高さを入力してください(空白で区切る): ");
    scanf("%lf %lf", &base, &height);
    double area = (base * height) / 2.0;
    printf("面積は %.2f です\n", area);
    return 0;
}