标准输入输出
介绍常用的输入输出方法。
格式化IO
printf
类似于C语言中的格式化输出,根据格式化字符串,对可变参数列表 进行格式化。
broadcast
可以将消息广播到所有设备,它同样也支持格式化输出。
Shell> printf("%O", [1, 2]);
[ /* sizeof() == 2 */
1,
2,
]
Shell> printf("%M\n", [1, 2]);
[1,2]
Shell> object obj = load_static("/test.gs");
Shell> printf("%O", obj);
object[32:v26]/test.gs<Static>
Shell> broadcast("%ip", 123456789);
7.91.205.21
sprintf
将格式化输出以字符串返回。
Shell> string str1 = "hello";
Shell> int year = 2017;
Shell> string str2 = "world";
Shell> string str = sprintf("%s%d%s", str1, year, str2); // str = "hello2017world"
提示
GS的格式化输出部分细节与C语言中不同:
-
几个扩展的格式化说明符
%O
%H
%M
等。%O
:任意类型格式化,输出详细格式%M
:任意类型格式化,输出紧凑格式%H
:格式化handle类型%ip
:ip地址格式化
-
不支持转换浮点数为十进制指数计数法
%E
%e
。 -
不支持转换浮点数为十六进制记法
%A
%a
。 -
格式化浮点数输出
%g
等效于%f
, 不会转换为十进制指数计数法输出。 -
字符串格式化输出中无截断操作
printf("%2s", "Hello"); // 结果为 “Hello” 而不是 “He”
-
.
dot类拓展整型时默认补空格而不是数字0printf("%.5d", 1); // 结果为 “ 1” 而不是 “00001”