R 3.5.0版本readLines函数调用后程序停滞问题求助
解决R 3.5.0中readLines导致输入后程序停滞的问题
我来帮你搞定这个问题!你的函数在输入数据后卡住,核心原因是**readLines("stdin", n=1)**在R控制台的交互式环境里行为不符合预期——它会一直等待输入流的结束信号,而不是你输入完一行回车就继续执行。
最优解决方案:改用readline()函数
在R的交互式控制台场景下,专门用于读取单行输入的readline()函数才是正确选择,它能完美适配控制台的输入交互逻辑。
修改后的函数代码如下:
create_matrix <- function() { cat("Write the numbers of vertices: ") user_input <- readline() # 替换原readLines调用 user_input <- as.numeric(user_input) print(user_input) }
为什么这个改动有效?
readline()是R为交互式场景量身设计的输入函数,你输入一行内容按下回车后,它会立即返回输入值,不需要额外的结束信号。- 而
readLines("stdin")更适合读取文件内容或脚本管道输入的场景,在直接控制台调用时,它会等待你手动发送流结束信号(Windows按Ctrl+Z,Linux/macOS按Ctrl+D),这就是你输入后程序没反应的根源。
如果非要坚持用readLines,也可以输入完内容后手动触发结束信号,但显然readline()是更贴合控制台使用场景的方案。
内容的提问来源于stack exchange,提问作者Dr.mincode
相关产品推荐
相关产品推荐

