如何在 Dyalog APL 中从 stdin 读取一个字节?

How can I read one byte from stdin in Dyalog APL?

提问人:rabbitgrowth 提问时间:11/8/2023 最后编辑:rabbitgrowth 更新时间:11/11/2023 访问量:62

问:

我正在尝试在 Dyalog APL 中制作一个终端用户界面,并且需要一种方法来从 stdin 读取用户输入的单个字节。我该怎么做?例如,在 Python 中,您可以使用 .sys.stdin.read(1)

我试过使用 ,但这读了一整行。

输入 用户输入 stdin apl dyalog

评论


答:

2赞 rabbitgrowth 11/8/2023 #1

你可以用⎕ARBIN来做到这一点,它可以像这样使用:

[要读取的字节数][要从中读取的文件的领带编号] [从输入读取之前要输出的字节]⎕ARBIN

要读取的字节数为 ,并且没有要输出的字节数 ()。您可以使用 ⎕NTIE 为 stdin 分配领带号。1

stdin←'/dev/stdin' ⎕NTIE 0
byte←⊃1 stdin ⎕ARBIN ⍬

⎕ARBIN返回一个数值向量,因此 First() 用于获取字节作为标量。