标准IO
1. 概述
标准输入输出(Standard I/O)是程序与用户交互的基石,负责处理键盘输入、屏幕信息显示等内容。GS 提供了一套功能完善的 I/O 函数,用于构建交互式应用。
本文档是 GS 标准 I/O 的实用指南,主要内容包括:
- 基础输出:格式化输出 (
printf) 与直接输出 (write) - 基础输入:读取用户输入 (
input_string) - 广播消息:多终端消息通知 (
broadcast)
阅读对象:GS 初 学者和需要快速查阅标准IO相关内容的的开发者。
阅读收获:快速掌握核心 I/O 函数的使用,能够实现用户交互、数据展示等关键功能。
2. 概念
什么是标准输入输出?
标准I/O是操作系统为每个程序预定义的三个标准数据流,它们构成了程序与外界(通常是终端或控制台)通信的基本通道:
- 标准输入:程序接收信息的数据流。默认指向键盘输入。当程序需要读取用户指令或数据时,就从这个流中读取。
- 标准输出:程序正常输出信息的数据流。默认指向屏幕或终端显示。程序运行的结果、提示信息等通过此流输出。
- 标准错误:程序输出错误信息或警告的特殊数据流。默认也指向屏幕,但独立于标准输出。这使得错误信息可以被单独过滤或重定向,而不会与正常输出信息混淆。
3. 标准输出
3.1 printf - 格式化输出
printf 函数类似于C语言中的格式化输出,根据格式化字符串对参数进行格式化输出。
基本语法:
printf("格式化字符串", 参数1, 参数2, ...);
简单示例:
//# 基本字符串格式化
printf("Welcome to %s!\n", "GS");
//# 整数格式化
printf("Decimal: %d, Octal: %o, Hexadecimal: %x\n", 255, 255, 255);
//# 浮点数格式化
printf("Floating-point number: %.2f\n", 3.14159);
//# 对象格式化
printf("Output object is: %O\n", this_object());
//# 数组格式化输出(详细格式)
array data = [1, "hello", 3.14, ["nested", "array"]];
printf("Verbose format: %O\n", data);
//# 数组格式化输出(紧凑格式)
printf("Compact format: %M\n", data);
// Compact format: [1,"hello",3.14,["nested","array"]]
示例3-1:printf 使用示例
常用格式化符号:
| 符号 | 说明 | 示例 |
|---|---|---|
%s | 字符串 | printf("%s", "hello") |
%d | 整数 | printf("%d", 123) |
%f | 浮点数 | printf("%f", 3.14159) |
%O | 详细格式 | printf("%O", [1,2,3]) |
%M | 紧凑格式 | printf("%M", [1,2,3]) |
3.2 write - 简单输出
write 函数更简单,不需要格式化字符串,直接输出内容。
基本语法:
write(值1, 值2, 值3, ...);
简单示例:
//输出字符串
write("Hello\n"); //'\n' 为换行换行
writeln("Hi"); //等效于 write("Hi\n")
//Hello
//输出多个值(自动用空格分隔)
write(3, "apples\n");
//3 apples
//输出数字和数组
write("number: ", 123, ", array: ", [1,2,3],"\n");
//number: 123, array: [1,2,3]
//换行输出
write("first line");
write("\n"); //换行
write("second line");
//第一行
//第二行