我的函数是:
create_matrix <- function() {
cat("Write the numbers of vertices: ")
user_input <- readLines("stdin", n=1)
user_input <- as.numeric(user_input)
print(user_input)
}
对于 3.5.0 版本,在我输入数据后,程序不会继续执行。我直接从控制台调用脚本。
我使用各种 docker 映像的发现:
- 该示例使用来自
rocker/r-ver:3.4.4
的R version 3.4.4 (2018-03-15) -- "Someone to Lean On"
工作正常。 - 该示例挂起,如使用来自
rocker/r-ver:3.5.0
的R version 3.5.0 (2018-04-23) -- "Joy in Playing"
中所述。 - 该示例挂起,如使用来自
rocker/drd
的R Under development (unstable) (2018-05-19 r74746) -- "Unsuffered Consequences"
中所述。
看起来版本 3.5.1 发行说明中提到的更改是不相关的。我已将我的发现发送给 r-devel 并将报告结果:
- 该示例使用
R version 3.5.1 (2018-07-02) -- "Feather Spray"
-
该错误已标记为已修复。我可以断言版本
R Under development (unstable) (2018-06-02 r74838) -- "Unsuffered Consequences"
按预期工作。 -
这被认为是一个错误,但目前还不清楚如何以及何时修复。
-
合理的解决方法:除了行尾之外,还发送文件结尾(EOF、Ctrl-D(。
TLDR:使用stdin()
如果您使用stdin()
而不是"标准",它可以正常工作....无论如何,我们都会推荐。
但可能,对于反向兼容性,"stdin"可能也应该工作((或者发出弃用警告并暂时工作(