printfとscanf
前回は変数のルールについて少し詳しく学習しました。
- 変数名は使えない文字など規則がある
- double型は誤差が生じる場合がある。
- char型は数字として扱うこともできASCIIコードと関係がある。
C言語基礎 第6回は、キーボードから値を入力し、入力した値を画面に表示するということについて学んでいきましょう。
文字列を画面に表示するprintf関数
皆さんは第2回で「画面に出力(表示)する」というプログラムを作成したと思いますが、この機能について、改めて詳しく学習していきましょう。まずは変数に格納された値を画面に表示するという機能について学習していきます。
そこで使用するのが”printf関数”という機能です。
※関数とは、ここでは事前に作られた機能程度に思っていただければよいです。詳細は今後学習していきます。
それではprintf関数の使い方について学習していきましょう。
printf(“Hello World!”);
printf関数を利用する際は”printf()”という形で呼び出します。
それでは次に変数の値を出力する方法について学習していきましょう。
変数の中身を出力する
それでは変数の中身を表示するプログラムについて学習していきましょう。まずは、表示する変数を用意する必要があります。
int num = 100;
int型の変数numに100という値を格納しました。それではこのnumという変数の中身を出力してみましょう。
printf("%d", num);
変数の値を出力する際にはフォーマット指定というものが必要になります。printf関数で変数の値を出力するにはフォーマット指定というものが必要になります。
フォーマット指定子
フォーマット指定子とは「%」で始まる書式指定です。データの型によってフォーマット指定子が異なり、printf関数は、フォーマット指定子以外の部分はそのまま表示し、
フォーマット指定子の部分はカンマに続いて渡す変数の値を埋め込みます。
- %d 整数値を 10 進
- %f 浮動小数値を表示
- %lf 浮動小数値を表示(double型)
- %c 文字を表示
- %s 文字列を表示
- %p ポインター(アドレス)を表示する
printf関数などではフォーマットする値に応じてフォーマット指定して文字列を作成します。
printf("その寺院は%d年前から存在している。", num);
上記の例だと%dの部分に変数numに格納されている値をフォーマットして「その寺院は100年前から存在している。」と画面に出力されます。このようにprintf関数は基礎の練習では実行結果としてよく使用されますが、実務に置いても、ある実行途中で変数などの中身を調べる目的でよく使用されます。
また、printf関数は自動で改行されないため以下のように続けて呼び出してしまうと
printf("こんにちは。")
printf("今日は暑いですね。")
画面には「こんにちは。今日は暑いですね。」と改行されずに連続して出力されます。改行を入れる場合は文字列の最後に”\n”(バックスラッシュn)を入れてみましょう。
printf("こんにちは。")
printf("今日は暑いですね。")
すると「こんにちは。」と「今日は暑いですね。」が改行されて出力されます。
入力を受け付けるscanf関数
さて、画面に出力するprintf関数を学習したところで、次はキーボードから入力を受け付けるscnaf関数について学習していきましょう。実際のプログラムでは、例えばATMの引き出しという処理を例に挙げると
- 暗証番号確認
- 引き出し金額入力
- 預金残高が引き出し金額を上回ていないか確認
- 出金
大まかな処理としては上記の通りです。ユーザーによって入力される暗証番号も異なれば出金金額も異なるはずです。世の中で使用されているプログラムは入力された値がどんな値であっても正しく実行されなくてはなりません。そのための第一歩として、まずはプログラムの外部からデータを受け付ける機能について学習いていきましょう。
C言語にはキーボードからデータの入力を受け付ける機能としてscanf関数というものがあります。scanf関数はprintf関数と同じく、入力されるデータの型をフォーマット指定子で決める必要があります。実際のプログラムを確認していきましょう。
#include <stdio.h>
int main(void){
int num ; //scanafから入力を受け付ける変数の宣言
printf("input>>>"); //文字列の出力
scanf("%d",&num); //括弧の最初に受け付けるデータ型のフォーマット指定、カンマの後に&変数名
printf("You input%d",num); //scanfから受け付けた変数の中身を出力
return 0;
}
scanf関数の使い方の注意点はフォーマット指定子でデータの型を指定することと、格納する変数の前に”&”という記号を付けて”&num”のように渡すことです。
まとめ
printf関数とscanf関数は今後も練習の中で何度も使用していきます。以下の点に注意しましょう・
- printf関数は””(ダブルクオート)をつけて文字列として渡す。
- printf関数で変数の中身を出力するときは”%”から始まるフォーマット指定子を使う。
- scanf関数を使用するときは事前に変数を宣言する。
- scanf関数はフォーマット指定子の後に、変数名の前に&をつける。
これらの基本的な使い方を理解することで、より複雑なプログラムの理解につながっていきます。
コメント