値の入力(scanf_s)

    2012/05/01

    本章では下記の内容を学習します。

    • データの入力:  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. 整数を 1 つ受け取り、その値を 2 倍した値を表示してください
    2. 整数を 2 つ受け取り、その値の積を表示してください
    実践問題 : 三角形の面積を求める
    1. 小数を 2 つ受け取り、三角形の面積を求めるプログラムを記述してください
    2. 問題(1)で、小数点以下は 1 桁で表示するようにしてください