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

R语言如何使用scan函数实现按n键继续执行代码

R语言基于scan实现仅按"n"才继续执行的交互方案

直接靠单次调用scan没法做输入校验,需要配合循环做输入判断,只有读到用户输入的"n"时才退出等待流程,具体代码如下:

# 等待用户输入n的交互段
cat("输入字母n后按回车继续执行: ")
repeat {
  # 配置scan读取单条字符输入,关闭默认提示信息
  input <- scan(nmax = 1, what = character(), quiet = TRUE)
  if (input == "n") break
  cat("输入无效,请输入n后按回车: ")
}

# 以下写后续需要执行的代码即可
print("校验通过,程序继续运行")

注意事项:

  • 必须给scan指定what = character(),否则默认读取数值类型,输入字母会直接抛错
  • R终端默认是行缓冲机制,用户输入内容后必须按回车才能被R读取,无法实现不按回车、单按n键就触发继续的效果,这是终端输入的通用限制,不是scan函数的问题
  • 如果需要兼容大写N的输入,把判断条件改成input %in% c("n", "N")就行

如果要做无回车的单按键捕获,需要额外依赖第三方包做终端原始模式修改,不属于scan函数的能力范畴。

内容的提问来源于stack exchange,提问作者dlwhch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 00:39:44