0からのゲームプログラミング > キーボードからの入力

Back Next
更新日 2003.08.30
キーボードからの入力

 今回は、キーボードからの入力を受け付けてみましょう。新しく scanf というのを使います。使い方は printf に似ています。

プログラムコード

// printf, scanf を使用するために必要
#include	<stdio.h>

void main(void)
{
	int     number;

	printf("数字を1つ入力して下さい:");

	// キーボードから入力されたデータを取得
	scanf("%d", &number);

	// 変数の内容を表示
	printf("変数の内容は %d です。\n", number);
}

「3」 を押して 「Enter」 を押したときの実行結果
数字を1つ入力して下さい:3
変数の内容は 3 です。

 変数 number に数値を格納して、その内容を表示しています。number の前に &(アンパサンド)が付いていることに気を付けて下さい。なぜ付いているかということは、後述します。今の段階では、scanf を使うときには変数の前に&を付けるものと思っておいて下さい。


 scanf で複数のデータを取得することも出来ます。

サンプル

#include	<stdio.h>

void main(void)
{
	// 2つの変数を宣言
	int     number1, number2;

	printf("数字を2つ入力して下さい:");

	// キーボードから入力されたデータを2つ取得
	scanf("%d %d", &number1, &number2);

	// 変数の内容を表示
	printf("number1=%d\nnumber2=%d\n", number1, number2);
}

「34 567」 と入力して 「Enter」 を押したときの実行結果
数字を2つ入力して下さい:34 567
number1=34
number2=567

 scanf の使い方に注意して下さい。&を忘れずに。


 scanf では、数値だけではなく文字も取得することが出来ます。

サンプル

#include	<stdio.h>

void main(void)
{
	// 文字を格納するための変数を宣言
	char    c;

	printf("1つのアルファベットを入力して下さい:");

	// キーボードから入力されたデータを取得
	scanf("%c", &c);

	// 変数の内容を表示
	printf("入力されたアルファベットは %c です。\n", c);
}

「d」 と入力して 「Enter」 を押したときの実行結果
1つのアルファベットを入力して下さい:d
入力されたアルファベットは d です。

 ここで新しく printf と scanf に %c を使っています。%c は文字を表します。%d は整数でしたね。
 さて、文字はコンピュータの内部では、どのように表現されているのでしょうか。C言語では、一般的に ASCIIコード を用いて文字を表現します。文字といっても、コンピュータ内部では単なる数値(ビット列)です。具体的な数値は、書籍などのASCIIコード表を参照して下さい。試しにアルファベットを文字と数値で表示させてみましょう。

サンプル

#include	<stdio.h>

void main(void)
{
	// 文字を格納するための変数を宣言
	char    c;

	printf("1つの文字を入力して下さい:");

	// 文字データを取得
	scanf("%c", &c);

	// 変数の内容を表示
	printf("文字で表すと … %c\n", c);
	printf("数値で表すと … %d\n", c);
}

「d」 と入力して 「Enter」 を押したときの実行結果
1つの文字を入力して下さい:d
文字で表すと … d
数値で表すと … 100

 %c と %d を使い分けていることに注意して下さい。


コラム - Caps Lock (キャプス・ロック)

 キーボードには、「Caps Lock」キーがありますよね。「Shift」+「Caps Lock」キーで「Caps Lock」のランプが点いたり消えたりし、大文字・小文字の切り替えが出来ます。
 小文字入力のときに、「Shift」を押しながらアルファベットのキーを押すと大文字を入力出来ます。逆に大文字入力のときに、「Shift」を押しながらアルファベットのキーを押すと小文字を入力出来ます。
 

【スポンサード リンク】


Back Next

0からのゲームプログラミング > キーボードからの入力