今までは、プログラムに値を直接書き込んでいましたが、これでは値を変更するたびにプログラムを修正しなければなりません。
また、プログラムは外部からの入力にもとづいて処理を行うことが多いです。
今回は、入力をキーボードで行う場合のやり方を学びます。ただし、今回は、キーボードの中でも数値を入力することに限定しています。
文字や記号などの入力については、別途学習する予定です。
C言語では、キーボードからの入力は、scanf という関数を使います。書き方は printf関数と同じように変換指定子を使用します。
ただし、printf関数は、出力変換指定子だったのに対し、scanf関数は、入力変換指定子になります。
入力と出力の変換指定子では、書式が異なりますが、今は、同じと思っていただいて構いません。
変換指定子についても、別途解説する予定でいます。
printf関数については、「数値や記憶した値を画面に表示」を参照していただければと思います。
scanf関数の書式
scanf関数の書式は次のように記述します。
書式
scanf( "入力変換指定子", &変数名 ) ;
" "内の入力変換指定子とは、printf関数と同様、%d などの変換指定子を記述します。
そして、カンマの後は、変数名に&を付けます。&は、変数の値を格納する場所を渡すことを示しています。
& は、「ポインタの仕組み」で詳しく紹介しますので、今は、scanf関数で、変数名を指定するときは、&を付ける必要があると覚えておいて大丈夫です。
また、scanf関数を使用する場合は、stdio.hをインクルードしておく必要があります。
サンプルプログラムを次に示します。
#include <stdio.h>
int main(void)
{
int number;
scanf("%d", &number);
printf("%d\n", number);
return 0;
}
scanf関数が実行されると実行画面がユーザーからの入力を待つ状態となります。
キーボードから入力し、Enterキーを押すと、入力した値(入力変換指定子が %d のため、整数値となる)が、カンマの右側に記述した変数に格納されます。
printf関数は、出力変換指定子を複数記述ました。
これは、scanf関数も同様で、入力変換指定子を複数記述できます。複数入力する場合は、スペースやタブ、改行などで区切ることで、入力されます。
今回は、使用することはないため、複数できるんだな程度に覚えていただければ十分です。
以上がC言語でキーボードからの入力についてでした。
次回は、 条件の判定について学びます。