VC++でC言語入門:キャストと変換指定 [C言語入門]
スポンサードリンク
こんにちは菊月です。
このシリーズにちょっと間が空いてしまい申し訳ありません。
今回はキャストと変換指定というお話しです。
まず最初はキャストのお話しです。
突然ですが、
私たちは整数をよく扱います。
その整数の平均を求めてみてくださいと言われると
(2+5+3+4+5)/5 = 3.8
あるいは
(2+5+3+4+5)/5 = 19/5
と言うふうに答えます。
しかし、C言語では整数で計算すれば整数でしかあつかえませんでしたね。
C言語で整数の平均を小数(実数)として
画面に表示する場合を考えてみます。
普通に考えたら
int a , b;
//ここでaとbに何か代入する処理を書く
printf("aとbの平均 = %d\n", (a + b) / 2);
というふうになりますが
小数点以下は切り捨てられてしまいますね。
そこで、次のいずれかをします
①:実数で割る。
例えば、「2」ではなく「2.0」で割ります。
それを%lfと指定し表示
②:(double) を先頭につけ型変換する
ではサンプルを見てみましょう
テキスト版(キャスト)
//^¥-----------------------------------------------
#include <stdio.h> void main(){ //明示的な型変換=キャスト int a,b; puts("2つの整数を入力してください"); printf("1:a = "); scanf("%d",&a); printf("2:b = "); scanf("%d",&b); //バッファ(残ってる\n)対策 getchar(); printf("実数で割る→%lfで表示すると実数になる\n"); printf(" :aとbの平均 = %lf\n", (a + b) / 2.0); printf("キャストなし:aとbの平均 = %d\n", (a + b) / 2); printf("キャストあり:aとbの平均 = %lf\n", (double)(a + b) / 2); //終わるのを防ぐ getchar(); }
//^¥-----------------------------------------------
このように明示的に型変換することをキャストと呼びます。
また、このときの()をキャスト演算子と呼びます。
〜〜〜〜
次は変換指定の話しです。
printf()を使って数値を表示するとき
桁数をそろえたい、などに使われるものです。
多くの機能がありますが今回は桁数のことだけ紹介します。
ちなみに
これは今よりも、自分でプログラムを組むときなどに
ふと役立つものです。
変換指定は、次のように指定します。
%①②.③④
①;0フラグ
数字の前に空白がある場合は0で埋める。
諸略時は空白のまま。
②;最小フィールド幅
最低限表示される桁数の指定。
省略するか、実際の桁数が多い場合は
その数値を表示するのに必要な桁数を表示。
.③:精度
表示する最小の桁数。
省略した場合、整数は1、実数は6になる。
④:変換指定子
dとかlfとか。
例えば次のようにして見ましょう。
テキスト版(変換指定)
//........................................................
#include <stdio.h> void main(){ printf("%d\n", 123); printf("%5d\n", 123); printf("%.5d\n", 123); //マイナスは左詰め printf("%-d\n", 123); printf("%3.1lf\n", 123.45); printf("%7.1lf\n", 123.45); printf("%07.1lf\n", 123.45); //終わるのを防ぐ getchar(); }
//........................................................
今回はざっとでしたが
難しい内容ではありませんね。多分。
最低限キャストの部分は覚えておくと良いです。
次は分岐(if文)のお話しをします。
分岐があることでかなりプログラムらしさがでてきます。
ではまた。
スポンサードリンク
コメント 0