如何从 Playground 中的 Readline 访问变量

How to access variables from Readline in a Playground

我有一个挑战,我要提供两行数据

2 3

1 2 3 4 5

我必须访问此数据并将其放入两个变量(2 和 3)中,并将第二行放入数组中。我收集到的这个挑战的一部分是阅读这条线并做类似的事情:

func readIntegers() -> [String] {
    return readLine()!.componentsSeparatedByString(" ").map { [=10=] }
}

如何将以上数据输入 Playground 以便我可以使用 ReadLine() 访问它?我必须这样做,因为这是 HackRank 网站提供的界面的要求,但我想在 Playground 中模拟它。我目前可以看到代码编辑器和调试区域。是否有数据输入面板?

您可以使用

重定向标准输入以从某个文件中读取
freopen("/path/to/input.txt", "r", stdin)

这适用于 Playground 和已编译的命令行工具项目。如果您想将数据保留在 Playground 中,那么

  • 打开项目导航器(查看 -> 导航器 -> 显示项目导航器 (cmd-1)
  • Select“资源”文件夹并选择文件 -> 新建 -> 文件 (cmd-N)。
  • Select 项目导航器中的新文件并将其重命名为“input.txt”。
  • 将输入数据添加到此文件。

在 Playground 中,重定向标准输入以从 资源文件:

if let path = Bundle.main.path(forResource: "input", ofType: "txt") {
    freopen(path, "r", stdin)
}

现在 readLine() 读取“input.txt”。