Stdout使用

Tango库Stdout的使用
Stdout是tango库中标准的执行格式化输出到控制台功能的方法,相当于java语言中的System.out.Printf或C语言中的Printf。
Stdout在tango.io.Stdout模块中预定义,它支持的类型有很宽的范围,把原来的表示形式转换成文本形式输出到控制台。它支持转换的类型有整数、浮点数、UTF8、UTF16、UTF32等等。
基本用法
像大多数库一样,Stdout可以接受多个参数,返回一些连锁引用,如下例:

import  tango.io.Stdout;

void main ()
{
//在控制台输出”Green”。
Stdout(“Green”).newline;
//在控制台输出”100个绿色的玻璃瓶子”,使用两个参数
Stdout(100)(“个绿色的玻璃瓶子”).newline;
}
在上例中,“.newline”的意思是在行末添加一个新行符,相当于传统用法的“\n”。也可以使用“.newline”的一个变体形式“.formatln”,它也含有添加一个新行符的意思。
Stdout.formatln (100)(“个绿色的玻璃瓶子”);

如果你的当前输出不想换行,可以用“.flush”或简单的在后面添加一个空括号“()”:
Stdout(100)(“个绿色的玻璃瓶子”).flush;

Stdout(100)(“个绿色的玻璃瓶子”)();

Stdout.format(100)(“个绿色的玻璃瓶子”);
Stdout还支持方便的变量参数(Vararg)型调用
Stdout (“{}个绿色的玻璃瓶子”,100).newline;
这里的“{}”(一对空大括号)是一个变量,叫做format item(格式项),它将被替换成后面的参数“100”。“{}”里可以有三个任意选择的三个元素用以详细说明要把替换的参数转换成什么样子,形式为
“[索引][,对齐形式][:格式字符串]”
“索引”指明用后面的哪个参数进行替换(从0数起),
char[] a=”绿色的玻璃瓶子”;
char[] b=”靠在桌子上”;
int c=50;
//输出“50个绿色的玻璃瓶子靠在桌子上”
Stdout (“{2}个{0}{1}”, a, b ,c).newline;
//输出“绿色的玻璃瓶子个50靠在桌子上”,即按参数排列//顺序输出
Stdout (“{}个{}{}”, a, b ,c).newline;
“对齐形式”是一个有符号数,如果是正数,就右对齐,如果是负数就左对齐(注意:单独使用这一部分时,前面要加“,”。)。如下例:
int a=100;
Stdout.format(”a是|{,+10}|”,a).newline;//输出”a是| 100|”
Stdout.format(”a是|{,-10}|”,a).newline;//输出”a是|100 |”
第三个部分是格式字符串部分,支持如下格式

格式 描述
[color=red]d[/color] 十进制格式,这是默认的格式
[color=red]x[/color] 小写十六进制格式
[color=red]X[/color] 大写十六进制格式
[color=red]o,O[/color] 八进制格式
如表,每个选项把一个数字转换为相应格式的数字字面值字符串表示出来。如果提供的数字为阿拉伯数字格式,转换后也为阿拉伯数字串;如果提供的数字是十六进制字母表示的数,转换后的十六进制数也用这种格式表示;如果不是数字而是字符串,它直接输出相应的字符串。可以在格式后添加一个正数表示用最少几位数字来描述给定的数字。如下例:
module sl;
import tango.io.Stdout;

void main ()
{
int a=100;
char []b="中国人";

//用最小4位十进制格式显示变量a
Stdout.format("a的十进制格式是|{:d4}|",a).newline;
//用最少8位十六进制格式显示变量a
Stdout.format("a的十六进制格式是 {:x8}",a).newline;
//用最少16位十六进制格式显示变量a
Stdout.format("a的16位十六进制格式是 {:X16}",a).newline;
//用最少8位八进制格式显示变量a
Stdout.format("a的八进制格式是{:o8}",a).newline;
//用最少16位八进制格式显示变量a
Stdout.format("a的八进制格式是{:O16}",a).newline;

//字符串变量直接输出,即格式部分对它不起限定作用
Stdout.format("b的十六进制格式是|{0,-10:x7}|",b).newline;
}
### 什么是 `stdout`? 在计算机科学中,特别是操作系统领域,`stdout` 是 **标准输出流 (Standard Output Stream)** 的缩写。它是程序用来向外部环境发送数据的主要通道之一[^1]。通常情况下,默认的标准输出目标是一个终端窗口或者控制台。 #### Linux 下的实现 在 Linux 和类 Unix 系统中,`stdout` 被视为一种特殊的文件资源,具体来说是 `/dev/stdout` 文件的一部分表示形式[^2]。这意味着可以通过常规的文件操作来处理标准输出的内容。 #### 进程间的数据传递 当提到多个命令通过管道符 (`|`) 组合执行时,前一命令的标准输出会自动成为下一命令的标准输入。例如,在下面的例子中: ```bash wget http://example.com/file.txt | grep "keyword" ``` 这里,`wget` 命令产生的标准输出被重定向给了 `grep` 命令作为其标准输入[^3]。这种机制允许不同工具之间无缝协作完成复杂任务而无需显式保存中间结果至磁盘。 #### Python 中的应用实例 对于编程语言如Python而言,也可以操控自己的标准输出行为。比如改变默认打印位置(即原本指向屏幕显示区域),转而记录日志到特定文档当中去: ```python import sys original_stdout = sys.stdout # 记录原始状态以便后续恢复 with open('log.txt', 'w') as f: sys.stdout = f # 修改sys.stdout使其指向新创建的日志文件对象f print("This will be written to log.txt") # 此句不会立即呈现在屏幕上而是存储于log.txt之中 sys.stdout = original_stdout # 恢复原状 print("Back to normal.") # 返回正常模式下再次呈现给用户查看的信息 ``` 上述脚本展示了如何临时更改 Python 应用程序中的标准输出方向,并最终将其还原回初始设置[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值