無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

Dをつつく6ーシステム型1ー文字コードに気をつけろ!

C#の記事ではシステム型の最小値、最大値を表示している。やっぱり、D言語もそれが必要と思うから試すピヨ。でもこっちの方はまだ慣れていないからリフレクションを使用しないでプログラミングするよ。だから、今回はみんなも一緒に打ってね。

import std.stdio;

int main( char[][] ) {
    bool flag;
    writeln( "bool型の初期値は" , flag ,
        "、最小値は" , bool.min , 
        "、最大値は" , bool.max ,
        "、サイズは" , bool.sizeof , 
        "です。");

    byte b;
    writeln( "byte型の初期値は" , b ,
        "、最小値は" , byte.min , 
        "、最大値は" , byte.max ,
        "、サイズは" , byte.sizeof , 
        "です。");

    ubyte ub;
    writeln( "ubyte型の初期値は" , ub ,
        "、最小値は" , ubyte.min , 
        "、最大値は" , ubyte.max ,
        "、サイズは" , ubyte.sizeof , 
        "です。");

    short s;
    writeln( "short型の初期値は" , s ,
        "、最小値は" , short.min , 
        "、最大値は" , short.max ,
        "、サイズは" , short.sizeof , 
        "です。");

    ushort us;
    writeln( "ushort型の初期値は" , us ,
        "、最小値は" , ushort.min , 
        "、最大値は" , ushort.max ,
        "、サイズは" , ushort.sizeof , 
        "です。");
    int i;
    writeln( "int型の初期値は" , i ,
        "、最小値は" , int.min , 
        "、最大値は" , int.max ,
        "、サイズは" , int.sizeof , 
        "です。");

    uint ui;
    writeln( "uint型の初期値は" , ui ,
        "、最小値は" , uint.min , 
        "、最大値は" , uint.max ,
        "、サイズは" , uint.sizeof , 
        "です。");

    float f;
    writeln( "float型の初期値は" , f ,
        "、最小値は" , float.min , 
        "、最大値は" , float.max ,
        "、サイズは" , float.sizeof , 
        "です。");

    double d;
    writeln( "double型の初期値は" , d ,
        "、最小値は" , double.min , 
        "、最大値は" , double.max ,
        "、サイズは" , double.sizeof , 
        "です。");

    real r;
    writeln( "real型の初期値は" , r ,
        "、最小値は" , real.min , 
        "、最大値は" , real.max ,
        "、サイズは" , real.sizeof , 
        "です。");

    ifloat fl;
    writeln( "ifloat型の初期値は" , fl ,
        "、最小値は" , ifloat.min , 
        "、最大値は" , ifloat.max ,
        "、サイズは" , ifloat.sizeof , 
        "です。");

    idouble id;
    writeln( "idouble型の初期値は" , id ,
        "、最小値は" , idouble.min , 
        "、最大値は" , idouble.max ,
        "、サイズは" , idouble.sizeof , 
        "です。");

    ireal ir;
    writeln( "ireal型の初期値は" , ir ,
        "、最小値は" , ireal.min , 
        "、最大値は" , ireal.max ,
        "、サイズは" , ireal.sizeof , 
        "です。");

    cfloat cf;
    writeln( "cfloat型の初期値は" , cf ,
        "、最小値は" , cfloat.min , 
        "、最大値は" , cfloat.max ,
        "、サイズは" , cfloat.sizeof , 
        "です。");

    cdouble cd;
    writeln( "cdouble型の初期値は" , cd ,
        "、最小値は" , cdouble.min , 
        "、最大値は" , cdouble.max ,
        "、サイズは" , cdouble.sizeof , 
        "です。");

    creal cr;
    writeln( "creal型の初期値は" , cr ,
        "、最小値は" , creal.min , 
        "、最大値は" , creal.max ,
        "、サイズは" , creal.sizeof , 
        "です。");

    writeln( "char型のサイズは" , char.sizeof , 
        "です。");

    writeln( "wchar型サイズは" , wchar.sizeof , 
        "です。");

    writeln( "dchar型サイズは" , dchar.sizeof , 
        "です。");
    return 0;
}

このプログラムはShowType.dとして保存してね。
よし、打ち終わったぞ。それではコンパイルしよう。
dmd ShowType.d
よしコンパイル成功! 早速実行だぁー
ShowType.exe
あれ???Windowsで実行すると変なメッセージが表示されたぞ。
インドリィちゃん「それは文字化けよ。」
うわぁ〜お化け(*△*)
インドリィちゃん「誰がよ!。そんな事言うなら教えてあげない。」
ごめんドリィちゃん。ちょっとまって!教えてください。
インドリィちゃん「始めからそう言えばいいのよ。いい、Windowsのcmd.exeはShift-JISを使用しているからUNICODEを主に使用しているD言語とは合わないのよ。」
ええ〜!!!。だから鶏空揚さんがIDEを作る事を決心したんだね。どうしよう(あわあわ)
インドリィちゃん「落ち着きなさい。リダイレクト。」
リダイレクト?
インドリィちゃん「そう、リダイレクトを使用すればいい。ちょっと見てなさい。」
ShowType.exe > ShowType.txt
インドリィちゃん「このコマンドで出来たShowType.txtをテキストエディタで開けば出力結果は見れるわ。」
うわぁー凄い。
インドリィちゃん「こんなの。じょ、常識よ。」
またぁ、照れちゃって。
皆も無理に英語を使わないでリダイレクトを使用しよう。 じゃあ、またね。
別窓 | D | コメント:0 | トラックバック:0 | ∧top | under∨
<<Dをつつく7−変数And定数と型推論。永遠に変らないものってあるのかな? | 無差別に技術をついばむ鳥 | 中の人の徒然日記30>>

この記事のコメント

∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |