gpt4 book ai didi

c++ - ruby 如何像 C++ 一样以 scanf 风格读取用户输入

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:42 26 4
gpt4 key购买 nike

我是 Ruby 新手。我需要读取用户输入的 (n) 个数字,在 C++ 中我使用了这段代码

for(i=0;i<N;i++)
{
scanf("%d",&array[i]);
}

此代码准确读取由任何空格(制表符、空格、换行符)分隔的 (n) 个数字。

我如何在 ruby​​ 中做到这一点?

在 Ruby 中我试着这样做

require 'scanf'
n = scanf("%d");
arr = Array.new()
n.times { arr << scanf("%d") }

但是当我输入这样的字符串时,这段代码不起作用:

1   4    8

但如果我输入这个就可以正常工作

1
4
8

最佳答案

使用字符串#scan

我不是 100% 确定我知道你真正想在这里做什么。如果你只想扫描字符串中的数字,你可以使用 String#scan做这样的事情:

digits = '1   4    8'.scan /\d+/
# => ["1", "4", "8"]

这将返回在字符串中找到的数字数组,您可以使用任何 Array 访问您的 digits 数组或 Enumerable你喜欢的方法。

如果你想像处理制表符或空格一样处理换行符,你需要做的就是添加用于多行匹配的m标志。例如:

digits = '1
4 8'.scan /\d+/m
# => ["1", "4", "8"]

关于c++ - ruby 如何像 C++ 一样以 scanf 风格读取用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14787471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com