You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:59:26