プログラム形式の出力dを持つ09

%精密ワイドフォーマットフラグシンボルは、
のようにwritefln("Item %d:%9.02f", i + 1, items[i]);
、Dは、フォーマットCに類似しています

フォーマッタ:b,x/X,o,dそこe,f,g,a
形式指定子
S、デフォルトの
B、バイナリ
D、小数
O、オクタル
X / X、16進
F / F、標準フォーマット浮動小数点数
E、科学的表記
A、16進カウント
G G、及びE / F
()|、要素形式(開始/終了/セパレータ)
%%形態A '%'文字
(併せて使用することができる)フラグ。


  • 印刷+記号

代替印刷

00ゼロで満たされた
空間を空間充填

int value = 12;

    writefln("Binary     : %b", value);
    writefln("Octal      : %o", value);
    writefln("Hexadecimal: %x", value);
    writefln("Decimal    : %d", value);

E:以下の規則に従って浮動小数点パラメータを印刷:
小数点の前に数、
非ゼロの精度は、小数点
。番号小数点後は、デフォルトの正確さと精度で決定される6つの
Eの文字は、10のテーブル電力
-または+を、インデックスが0より大きい判断
指数は、少なくとも二つの数字が含まれています。

//及
    double value = 123.456789;

    writefln("with e: %e", value);
    writefln("with f: %f", value);
    writefln("with g: %g", value);
    writefln("with a: %a", value);

E:E同じが、「E」の出力
F / F:少なくとも一つの数字が小数点の前に、デフォルトの精度は小数点の後に6桁である
G:インデックス場合-5与精度小数点の残りの部分と同じ精度で、EとFとの間が指定されていません。後に位数、しかし全体の値有效位数は、後述するようにしない小数点有效位数、印刷されない小数点。小数点以下が0の右端に印刷されていない
GとGと同じ、しかし出力'E'与'F'
:浮動小数点形式の印刷機の進のパラメータは:
が0xの前に
単進
精度が0、小数点ない
精度によって決定番号必要小数点、後に、精度が指定されていない、それは、可能な限り正確である
P、テーブル2的幂
「 - 」/「+」、指数> 0決定によってかどうかを
少なくとも含む、インデックス1.0インデックス0の数
Aと同じ、しかし出力0X P.

//及
    bool b = true;
    int i = 365;
    double d = 9.87;
    string s = "formatted";
    auto o = File("test_file", "r");
    int[] a = [ 2, 4, 6, 8 ];

    writefln("bool  : %s", b);
    writefln("int   : %s", i);
    writefln("double: %s", d);
    writefln("string: %s", s);
    writefln("object: %s", o);
    writefln("array : %s", a);

Sルール:
ブール値である/
全体:%dの
フローティング:%G
UTF8符号化
バイトの精度決意の最大数を、
構成/タイプは、に応じてtoString印刷の戻り値
ずつ、印刷一つのアレイ要素値
宽度、幅が負であれば、想定-フラグ。なるように*、パラメータ値の印刷機の幅

int value = 100;
writefln("10符字段:%10s", value);
writefln("5 符字段:%5s", value);

精度、次のパラメータ(整数でなければならない)から読み出され、アスタリスクなどの小数点の後の数字は、負の精度を無視します

    double value = 1234.56789;

    writefln("%.8g", value);
    writefln("%.3g", value);
    writefln("%.8f", value);
    writefln("%.3f", value);
//
    auto number = 0.123456789;
    writefln("Number: %.*g", 4, number);
//从下个参数来读.即4为精度.
    int value = 123;

    writefln("一般右对齐:|%10d|", value);
    writefln("左对齐:|%-10d|", value);

   writefln("负值:%+d", -50);
    writefln("正值有+号: %+d", 50);
    writefln("正值无+号: %d", 50);

#数は、他のバイナリ印刷形式に
O、8進正面が0である
X、進数16、フロント0Xに
X-、進数16、フロント0Xに
浮動小数点は、印刷されるべき
Gを、G 0は小数であります印刷します

    writefln("八进制0开头: %#o", 1000);
    writefln("16进制0x开头: %#x", 1000);
    writefln("10进制有小数点: %#g", 1f);
    writefln("打印右边零:%#g", 1.2);

0:0フィールドは、プレスを満たしました。

writefln("8符: %08d", 42);

スペース、空間充填

writefln("负值无效:  % d", -34);
writefln("正值有空格:% d", 56);
writefln("正值无空格:%d", 56);

パラメータの位置に結合され
% position$ flags width precision format_character
%数字$、いくつかのパラメータの最初を表します。

writefln("%1$d %1$x %1$o %1$b", 42);
auto format = (language == "en"
                   ? "There are %1$s students in room %2$s."
                   : "在%2$s房间有%1$s个学生.");
    writefln(format, count, room);
//交换顺序有时很有用的

出力要素のフォーマット(バッチ出力、有効なコンテナに対応します)。

    auto numbers = [ 1, 2, 3, 4 ];
    writefln("%(%s%)", numbers);

%(:スタート%)を超えます。

writefln("%({%s},%)", numbers);

},印刷要素に要素だけではなく、すべての間で印刷し、区切り文字とみなされます。

writefln("%({%s}%|,%)", numbers);

%|。これは、印刷する、区切り文字ではないことを言った,区切りです
d問題に会った言語機能、それは+、何か「+」構文。

    auto vegetables = [ "spinach", "asparagus", "artichoke" ];
    writefln("%(%s, %)", vegetables);
    writefln("%-(%s, %)", vegetables);

串又不一样%-文字列は表示されません。

  writefln("%(%s%)", "hello");
   writefln("%-(%s%)", "hello");

%-表未分離
聖書は来ます:

   auto spelled = [ 1 : "one", 10 : "ten", 100 : "hundred" ];
    writefln("%-(%s (%s)%|, %)", spelled);

フォーマット文字列。

import std.stdio;
import std.string;//这个模块里面的format

void main() {
    write("What is your name? ");
    auto name = strip(readln());

    auto result = format("Hello %s!", name);
}

またチェックし格式串、問題を

import std.stdio;

void main(){
    writefln!"%s%s"(1); //   编译错误(额外%s)
    writefln!"%s"(1,2);//   编译错误(额外2)
    writefln!"%s%d"(1,2.5);  //编译错误(不匹配的%d和2.5)
}

writef, writefln, formattedWrite, readf, formattedReadこれらの機能は、取ることができ格式串、問題のフォーマット文字列をコンパイル時。があるかどうかを確認することができ、パラメータとして!文字テンプレートインスタンス。

import std.stdio;

void main() {
    write("First name: ");
    string firstName;
    readf(" %s\n", &firstName);//\n at the end
    write("Last name : ");
    string lastName;
    readf(" %s\n", &lastName);//\n at the end

    write("Age       : ");
    int age;
    readf(" %s", &age);

    writefln("%s %s (%s)", firstName, lastName, age);
}

。書式入力
整数D:10進、O:8進、X:16進
浮動:F、S:変数の種類に応じて個々の文字を読み取る読み取り.C

  int number_d;
    int number_o;
    int number_x;

    readf(" %d %o %x", &number_d, &number_o, &number_x);

    writeln("Read with %d: ", number_d);
    writeln("Read with %o: ", number_o);
    writeln("Read with %x: ", number_x);

彼らは、入力された23が、その価値は同じではありません。

公開された381元の記事 ウォン称賛25 ビュー10万+

おすすめ

転載: blog.csdn.net/fqbqrr/article/details/104587214