前回の学習では、printf() 関数を使って、標準出力装置(モニタ)にデータを表示しました。
C言語では、モニタもファイルと同じように扱い、プログラムから出力を行います。
今回は、標準入力装置(キーボード)を使って、プログラムがユーザーからデータを受け取る方法を学びます。
そのために使うのが scanf() という関数です。
この資料では scanf() の基本的な使い方から、複数の入力、実数や文字列の入力方法までを順を追って学びます。
scanf("%d", &変数名);
%d は「整数を読み取る」という意味の書式指定子です。& は「変数のアドレス」を示します。
scanf() は、読み取った値をどこに入れるかを指定する必要があります。#include <stdio.h>
int main(void) {
int number;
printf("整数を入力してください: ");
scanf("%d", &number);
printf("入力された値は %d です\n", number);
return 0;
}
scanf("%d %d", &a, &b);
#include <stdio.h>
int main(void) {
int x, y;
printf("2つの整数を入力してください(空白で区切る): ");
scanf("%d %d", &x, &y);
printf("合計: %d\n", x + y);
return 0;
}
| 型 | 書式指定子 | 例 |
|---|---|---|
| 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 は空白で区切られるまでを読み取ります。
底辺と高さを 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;
}