本文へスキップ
BecomeCoder

C言語コース · 第1章 C言語をはじめる · レッスン4

標準入力 ― scanfで値を受け取る

ブラウザで完結

導入

キーボードなどから値を受け取るには scanf(スキャン・エフ)を使います。入力した値を変数に取り込めます。

説明

scanf("%d", &n); と書くと、入力を1つ、%d(整数)として読み取って変数 n に入れます。ここで注目してほしいのが &n&(アンパサンド)です。

&変数名 は「その変数がメモリ上のどこにあるか」という場所(アドレス)を表します。scanf は値を直接書き込むために、変数そのものではなく「その変数の場所」を知る必要があるので & を付けます。この & の考え方は、この後の章で学ぶポインタの土台になるので、いまは「scanf には & を付けて渡す」というルールとして覚えておけば十分です。

flowchart LR
  kb["標準入力欄<br/>(キーボードの代わり)"] -->|"scanf(&quot;%d&quot;, &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);

実際に動かしてみよう

下のエディタにCを書いて「実行」を押すと、ブラウザ内のインタプリタで出力が表示されます。本文の例をそのまま試したり、書き換えたりしてみましょう(scanf を使う回は「標準入力」欄に値を入れてから実行します)。

C/C++ — ブラウザ内で実行

ブラウザ内でC/C++を動かす学習用インタプリタ(JSCPP)を読み込みます(入門向けのサブセットです)。
スクロールして表示された時点でも自動で読み込まれます。