本章では下記の内容を学習します。
- データの入力: scanf_s 関数
scanf_s 関数
#include <stdio.h>
int main()
{
// 例 1: scanf_s 関数でユーザからの入力を受け付ける
int scan;
printf( "整数を入力=>" ); // 入力を求める文章を表示
scanf_s( "%d", &scan ); // 入力処理
printf( "scan=%d\n", scan ); // 結果を表示する
return 0;
}
前回までのプログラム演習では、変数の値などはすべてあらかじめ決められていたものでした。今回新たにご紹介するのは、ユーザがプログラムを動かしている最中に、変数の値などを決めることができる、入力関数です。
scanf_s
関数は、ユーザから入力された値を、変数として記憶することができます。scanf_s 関数を実行すると、プログラムがそこで一時中断します。画面上ではキャレットと呼ばれる ■ 点がチカチカしはじめ、これがユーザからの入力待ち状態を意味します。このときユーザは画面上で数値や文字を入力することができ、プログラム内の変数値を決定することができるようになります。
scanf_s 関数には 2 つ以上の引数が指定でき、1 つ目はどういった変数を入力したいのかを printf 関数のフォーマットと同じ感じで指定します。2 つ目は受け取るための変数を指定します。
1 つ目のフォーマットは、%d
や %f
などを指定してください。そのほかの文字などは指定できませんし、文字を指定しても表示されることはありません(前後の表示には printf 関数を使います)。
2 つ目の受け取り変数には、頭に &
を付けてください。これがないと実行時エラーになります。頭に &
を付ける理由については、ポインタと呼ばれる機能を解説する際に説明します。
練習問題 : 掛け算
- 整数を 1 つ受け取り、その値を 2 倍した値を表示してください
- 整数を 2 つ受け取り、その値の積を表示してください
実践問題 : 三角形の面積を求める
- 小数を 2 つ受け取り、三角形の面積を求めるプログラムを記述してください
- 問題(1)で、小数点以下は 1 桁で表示するようにしてください