*C言語* 〜8時限目〜 キーボードから入力する・・・
〜目次〜
キーボードから入力する
今回は、ユーザーにキーボードから色々な文字や数値を入力させ、
その値を出力するプログラムを記述してみます。
キーボードからの入力ができるようになることで、
プログラムの幅が今までよりも広がります。
キーボードからの入力を受け付けるには、
scanf
という言葉を使います。
scanfにはキーボードから入力された値を読み込んで、
変数に値を格納する機能を持っています。
scanfはprintfと似ていて、
printfを同じように、整数を入力する場合には、
%dという変換仕様を使います。
注意ですが、
scanfを使う変数には、必ず&記号をつけてください。
scanfという文の処理が行われると、
実行画面は、
ユーザーからの入力を待つ状態
で止まります。
そこで、数値などを入力してエンターキーを押すことで、
scanfの最後に指定した変数に読み込まれるのです。
実際にプログラムを入力してみましょう。
sample11.c
ーsample11の実行画面ー
整数を入力してください。
7(ここでEnterを押す)
7が入力されました。
実行するとわかるように、
入力待ちになり、好きな数値を入力しEnterを押すことで、
その数値が代入され、出力されたと思います。
小数を入力する
整数値以外の入力を試して見ることにします。
以下のコードを入力してみてください。
sample12.c
ーsample12の実行画面ー
小数を入力してください。
1.25
1.25が入力されました。
sample12では小数値を読み込んで出力しています。
変換仕様として
%lf
という指定をしています。
double型の変数に入力するには、
この変換仕様を使います。
double型の変数の値を出力する際には%fを使うので、
この違いについては間違えやすいので注意です。
尚、入力する値がfloat型の場合は、
scanfでも%fを使うことになっています。
誤った入力
整数を入力するプログラムに対して、
ユーザーが小数を入力してしまった場合などには、
エラーが起きてしまったり、予想してない出力結果になることがあります。
実際のプログラムを作成する際には、
そのようなエラーにも対応できるような処理を書く必要があります。
その方法についてもこの先学ぶことになります。
文字を入力する
文字を入力する場合には、
scanfではなく、
getchar
という指定を使うことがあります。
変数名 = getchar( ); (変数に1文字読み込みます)
getcharの文が処理されると、
ユーザーがキーボードから文字を入力できるようになります。
実際に入力してみましょう。
sample13.c
ーsample13の実行画面ー
文字を入力してください。
a(ここでEnterを押す)
aが入力されました。
1文字を入力する際には、getcharを使います。
変換仕様は%cを使うことで出力することができます。
標準入力の仕組みについて
printfが「標準出力」に対して処理を行うものであったように、
scanfやgetcharは「標準入力」という場所から、
数値や文字を読み込む処理を表しています。
通常、標準入力とは「キーボード」のことを指しています。
scanfやgetcharを使う際には、
printfと同様にコードの最初でstdio.hを読み込まなくてはいけません。
他にも、入出力の方法はあるのですが、
それはもっと後に勉強します。
長い間この3つを使うことで十分にプログラムを書くことができます。
〜END〜