如何在C与R语言中实现单行空格分隔输入多数值无需按回车
问题解答
C语言部分
你提供的C语言参考代码已经可以实现需求:scanf("%d%d")会自动跳过输入中的空格、换行、制表符等空白字符,输入5 6后按回车即可正确给a、b两个变量赋值,不需要额外调整。
R语言部分
原代码调用了两次readline(),会触发两次输入提示,不符合单行空格分隔输入的要求,调整思路如下:
- 仅调用一次
readline()读取完整的一行输入内容 - 将读取到的字符串按空格拆分后转为数值类型,即可分别拿到两个输入值
调整后的完整代码:
sum_of_total_number <- function (first,second){ first <- as.numeric(first) second <- as.numeric(second) return (first + second ) } main <- function(){ # 读取整行输入 input_line <- readline("Input a and b in digits: 'use space' ") # 按任意数量空格拆分字符串,转成数值数组 num_list <- as.numeric(unlist(strsplit(input_line, "\\s+"))) # 调用求和函数输出结果 print(sum_of_total_number(num_list[1], num_list[2])) } main()
补充说明
- 代码中的
\\s+匹配任意个数的空格,可兼容输入时不小心输入多个空格的场景 - 如果需要支持输入更多数值,直接取
num_list对应下标的值即可
内容的提问来源于stack exchange,提问作者Sazib
相关产品推荐
相关产品推荐

