%精密ワイドフォーマットフラグシンボルは、
のように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
が、その価値は同じではありません。