我想从R中的stdin获取输入 这是我的代码
fil <- file("stdin")
open(fil)
fn <- readline(fil)
fn <- strsplit(fn, split = ' ')
f <- fn[[1]][1]
n <- fn[[1]][2]
write(n, stdout())
close(fil)
当我运行此代码时
> fil <- fil("stdin")
> open(fil)
> fn <- readline(fil)
4
我从不知道这个不必要的号码4
。有时它的3有时是它的4.它来自哪里?
答案 0 :(得分:1)
readline()
应该以交互模式从用户那里获得输入。 readline
的参数是一个提示:
> n = readline("enter num: ")
enter num: 3
> n
[1] "3"
该行
fn <- readline(fil)
将fil
解释为提示。因此,您看到的数字(3或4)是由stdin
函数分配给open()
的文件句柄,这会产生相当神秘的提示。
我认为(假设您尝试在批处理设置中管道来自stdin
的数据),您需要使用readlines()
。输入?readlines
作为信息。另一方面,如果您正在编写程序以通过键盘以交互方式获取输入,请跳过关于将stdin
作为文件打开的部分,并使用readline(<prompt of your choice>)
。函数readline()
已与stdin
连接。