この記事では、キーボードから入力した値を格納するための scanf関数 について解説します。
IoTでは、scanf関数などの標準入力は使用しませんが、C言語を学ぶ上では「入力 → 処理 → 出力」の流れを体験することが理解の助けになります。
特に、条件分岐や繰り返し文の確認において、入力値によって動作が変わるプログラムを試すことは非常に効果的です。
scanf関数とは
キーボードからの入力を受け取るには、scanf という関数を使用します。
scanf関数は、「画面への出力」で学習したprintf関数にとてもよく似ています。
scanf("%d", &number);書式指定子で入力する型を指定します。上記の例では、%d を指定して、整数値を受け取ることになります。
そして、受け取った値は、変数numberに格納されます。scanf関数で使う変数には、必ず & を付けてください。
この & の意味については、別の記事で詳しく解説しますが、今は、scanf関数で使う変数には、&を付けるということを覚えておけば十分です。
次にソースコードを作成して動かしてみます。
#include <stdio.h>
int main(void)
{
int number;
char c;
printf("整数を入力してください。\n");
scanf("%d", &number);
printf("%dを入力しました。\n", number);
printf("1文字を入力してください。\n");
scanf(" %c", &c);
printf("%cを入力しました。\n", c);
return 0;
}整数を入力してください。
5
5を入力しました。
1文字を入力してください。
A
Aを入力しました。例では、整数に5を入力してEnterを押します。そしたら、その後のprintf関数が実行されて、結果と、次の文字入力メッセージが表示されます。
そして、文字の「A」を入力してEnterを押します。
その後に、結果が表示されます。
このように、数値や文字が入力されるようになります。
※文字列を入力することも可能ですが、今は、まだ、配列を学習していないので、また、別の記事で紹介します。
1文字入力するscanf関数を見ると、%c の前にスペースがあります。スペースを入れる理由があるのですが、説明すると混乱のもとになるかもしれませんので、今は、スペースを入れるということだけ覚えておいてください。
これについては、改めて記事にします。
まとめ
- キーボードから数値や文字を入力するには、scanf関数を使用する。
- scanf関数を使って1文字を入力するためには、" %c" と、%の前にスペースを1つ入れること。