跳轉到內容

D 語言入門指南/基礎/基本輸出

來自華夏公益教科書,自由的教科書

程式最基本的操作之一是在控制檯視窗(有時也稱為 DOS-box)中列印一些文字。即使你後來只使用圖形環境在螢幕上顯示漂亮的視窗,編寫控制檯輸出始終有助於告訴程式設計師程式當前在做什麼,以便他/她可以檢查程式是否按預期工作,並找到程式中的錯誤(原始碼中的錯誤)。

用於向控制檯寫入內容的非常通用的函式是writefwritefln.

首先,這些函式位於名為“std.stdio”的單獨模組中,因此你需要匯入它,正如你之前在模組介紹中學習的那樣。

這是一個只向控制檯寫入單個字串文字的簡單程式

import std.stdio;
 
void main()
{
  writefln("Hello, world!");
}

如果你編譯並執行它,你會在螢幕上看到文字

Hello, world!

正如你之前在型別和數學中學習的那樣,你也可以在writefln:

import std.stdio;
 
void main()
{
  writefln("Hello,\nworld!");
}

輸出

Hello,
world!

中使用轉義序列。writefwritefln兩者之間的區別僅僅是後者在輸出後自動附加一個“\n”。在使用writefln的任何地方,你都可以改用writef並自行附加換行符,但這不太實用。

import std.stdio;

void main()
{
  writef("Hello, this ");
  writef("is all");
  writefln("on one line");
  writefln("Another line");
}

輸出

Hello, this is allon one line
Another line

原始碼中“all”後面沒有空格,因此輸出中也沒有空格。

最好在程式的最後輸出之後始終有一個換行符。

列印變數

[編輯 | 編輯原始碼]

writef()writefln()不僅僅用於列印字串文字。它們可以列印任何基本數字型別或字串型別或此類項陣列的變數組合。

import std.stdio;

void main()
{
  int i = 5;
  int[] ia = [1,2,4,3];
  double d = 3.1415;

  writefln(i + 3);
  writefln(ia);
  writefln(d);
  writefln("Integer ", i, " plus double ", d, " gives ", i + d);
}

輸出

8
[1,2,4,3]
3.1415
Integer 5 plus double 3.1415 gives 8.1415

正如你在最後一個示例輸出中看到的,你也可以將多個表示式作為逗號分隔的列表傳遞給writef()writefln().

這最後一行也可以用另一種方式寫成格式字串,這在 C 程式設計師中更為常見。格式字串是一個包含一些固定文字和用於存放變數或表示式中資料的佔位符的單個字串。必須放在格式字串中的值作為格式字串本身之後的附加引數附加。

格式字串中的佔位符始終以百分號 % 開頭,並以定義如何輸出值的字母結尾(格式字元)。對於某些字母,百分號和字母之間可以有額外的字元以更精確地控制輸出(特別是對於數字)。

預設的通用格式字元是“s”,它可以在任何地方使用。因此,上面的行可以改寫為

   writefln("Integer %s plus double %s gives %s", i, d, i + d);

,輸出完全相同。

[TODO: 更多細節] (待定)

華夏公益教科書