【发布时间】:2016-04-11 18:34:33
【问题描述】:
现在我使用这段代码从标准输入读取数据:
print =: 1!:2&2
read =: 1!:1[3
in =. (read-.LR)-.CR
但它只返回一个数字序列,例如输入:
2 3 4 5
输出:
2345
数字的数量未知,但每个都在单独的行中
【问题讨论】:
现在我使用这段代码从标准输入读取数据:
print =: 1!:2&2
read =: 1!:1[3
in =. (read-.LR)-.CR
但它只返回一个数字序列,例如输入:
2 3 4 5
输出:
2345
数字的数量未知,但每个都在单独的行中
【问题讨论】:
使用 (1!:1) 读取时,您读取的是字符流。您必须操纵流以获得所需的输入。
例如。如果要输入行分隔整数的列表,您将读取该列表,然后将其按 LF 拆分,删除 LF,然后转换为整数。您可以使用cut (;._2) 实现前两个步骤,使用do (".) 实现转换:
in =: ".;._2 (1!:1) 3
如果你想输入一个空格分隔的整数列表,你只需使用do,空格会隐含分割:
in =: ". LF -.~ (1!:1) 3
在应用". 之前必须删除尾随LF(如果存在),因为do 不能转换特殊字符。
【讨论】: