導入
キーボードなどから値を受け取るには scanf(スキャン・エフ)を使います。入力した値を変数に取り込めます。
説明
scanf("%d", &n); と書くと、入力を1つ、%d(整数)として読み取って変数 n に入れます。ここで注目してほしいのが &n の &(アンパサンド)です。
&変数名 は「その変数がメモリ上のどこにあるか」という場所(アドレス)を表します。scanf は値を直接書き込むために、変数そのものではなく「その変数の場所」を知る必要があるので & を付けます。この & の考え方は、この後の章で学ぶポインタの土台になるので、いまは「scanf には & を付けて渡す」というルールとして覚えておけば十分です。
flowchart LR kb["標準入力欄<br/>(キーボードの代わり)"] -->|"scanf("%d", &n)"| n["変数 n"] n -->|"printf で n を表示"| out["画面に出力"]
#include <stdio.h>
int main(void) {
int n;
printf("数を入力してください: ");
scanf("%d", &n);
printf("2倍は %d です\n", n * 2);
return 0;
}
この実行環境では、エディタ下の「標準入力」欄に入力値を書いてから実行します。上の例なら、標準入力に 7 と入れて実行すると、n に 7 が入ります。
複数の値を続けて読むこともできます。書式指定子を並べ、対応する変数にすべて & を付けます。
#include <stdio.h>
int main(void) {
int a, b;
scanf("%d %d", &a, &b); // 2つ読む
printf("%d + %d = %d\n", a, b, a + b);
return 0;
}
(標準入力に 3 4 のように空白区切りで入れて実行します。)
やってみよう
上のコードを、標準入力欄にいろいろな数を入れて実行してみましょう。2つ読む例では 5 8 のように試してください。
演習
整数を1つ scanf で読み取り、その数の3倍を表示してください。標準入力に好きな数を入れて実行しましょう。
ヒント1を見る
int n; scanf("%d", &n); で読み取り、printf("%d\n", n * 3);。