SSブログ
サイト移しました 書いてた記事も結構移してます こちらからどうぞ







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) を先頭につけ型変換する

ではサンプルを見てみましょう


VC++


テキスト版(キャスト)
//^¥-----------------------------------------------
#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とか。

例えば次のようにして見ましょう。


VC++


テキスト版(変換指定)
//........................................................
#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文)のお話しをします。
分岐があることでかなりプログラムらしさがでてきます。


ではまた。



スポンサードリンク



nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:資格・学び

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました




QLOOKアクセス解析

  
  
  
  

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。