跳转到内容

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: 更多细节] (待定)

华夏公益教科书