さて、今まではプログラムを書いて結果を表示するという作業でしたが
今回からはキーボードから数値を入力させてプログラムっぽくしていきましょう。
そこで今回勉強するのは「scanf関数」です。
キーボードから入力させるときはこの関数を使います。
scanf関数
「scanf関数」はプログラムを実行したときにキーボードから数値などを入力したときに入力されたデータを読み取ってくれる関数です。
使い方は
scanf("入力変換指定子",&変数名);
「入力変換指定子」という言葉が出てきました。
これはキーボードから入力された数字を数値へと変換してくれる指定子です。
以前「出力変換指定子」を勉強したのを覚えていますでしょうか?
「printf関数」のときに使いましたね。
この出力変換指定子と、ほとんど同じように使用出来ます。
「%d」とかは同じように使用して問題ありません。
もう一つ、「変数」も覚えていますか?数値を記憶するメモリのようなものでしたね。
この「変数」はscanf関数とセットです。
今まではプログラム上で「変数に数値を代入」させて来ましたが、
「scanf関数」を使うとプログラムを実行してキーボードから入力した数値を宣言した変数に「代入してくれる」わけです。
つまり今まで「int ax = 10;」のように数値を「絶対的に指定」していましたが、
「scanf関数」を使えば実行されたプログラム上で数値を「自由に指定」出来るわけです。
「scanf関数」は「キーボードから数値を読み込み、その値を変数に代入してください」という命令をコンピュータにするわけです。
ただし、「printf関数」と同じように「説明書」が必要です。
これはprintf関数と同じ「#include <stdio.h>」で、この中に説明書があるので書くのは1回で大丈夫です。
また、変数名の前に「&」記号をつける必要があります。
この理由はちょっと長くなってしまいますのでいずれ改めて説明します。
それまでは変数名の前に「&」記号をつけるということだけを忘れずに覚えておきましょう。
ではおさらい
「scanf関数」はキーボードから数値を読み込み、その値を変数に代入する
使い方は「scanf("入力変換指定子",&変数名);」
#include <stdio.h>が必要
変数名の前に「&」記号をつける必要がある
キーボードからの入力
さて、説明はここまでにして実際に使ってみて覚えていきましょう。
とりあえずプログラムを実行したときに入力した数値を表示させて見ましょう。
使う関数は「scanf関数」と、表示させる関数「printf関数」を使います。
適当な数値を入力したら「Enterキー」を押してください。ここでは999を読み込ませます。
#include <stdio.h>
int main(void)
{
int num;
printf("整数を入力してください:");
scanf("%d", &num);
printf("%dと入力されました。¥n", num);
return 0;
}
実行結果
整数を入力してください:999↵
999と入力されました。
何にも無いところに入力するよりは何か指示があったほうが分かりやすいと思い、
「整数を入力してください:」という文字列を表示させて見ました。
ちなみにこれは「整数」の場合ですね。実数の場合は何を使えばいいかもうご存知ですね。
#include <stdio.h>
int main(void)
{
double num;
printf("数値を入力してください:");
scanf("%f", &num);
printf("%fと入力されました。¥n", num);
return 0;
}
実行結果
数値を入力してください:999.99↵
000.000000と入力されました。
あれ、結果が「0」になってしまいますね。
実はこれちょっと間違っています。というか一文字足りないんです。
何に問題があるかというと、「出力変換指定子」に問題があります。
整数の場合は「%d」で大丈夫なんですが、
実数の場合は「%f」ではなく、「%lf」としてやらないといけないんです。
出力変換指定子は入力変換指定子と全く同じではなくほぼ同じように使えるといったのはこれがあるからです。
まあ「l(英字のエル)」を付け加えるだけなのでそこだけは忘れないようにしてください。
私は良く忘れます。
scanf関数で実数を読み込ませるときは出力変換指定子「%lf」を使用する。
printf関数で実数を表示させるときは入力変換指定子「%f」を使用する。
ということになります。
正解はこちら
#include <stdio.h>
int main(void)
{
double num;
printf("数値を入力してください:");
scanf("%lf", &num);
printf("%fと入力されました。¥n", num);
return 0;
}
実行結果
数値を入力してください:999.99↵
999.990000と入力されました。
「l」を忘れないようにしましょう。
ではもう一度おさらい
「scanf関数」はキーボードから数値を読み込み、その値を変数に代入する
使い方は「scanf("入力変換指定子",&変数名);」
#include <stdio.h>が必要
変数名の前に「&」記号をつける必要がある
scanf関数で実数を読み込ませるときは出力変換指定子「%lf」を使用する。
これ以上は長くなってしまうので次回に続きます。
次回は複数値を入力する場合です。
メニューへ戻る
タグ:C言語
↓もしこの記事が役に立ったらクリックお願いします。


【プログラミング>C言語の最新記事】