如何从Playground中的Readline访问变量

时间:2018-03-14 13:47:57

标签: xcode swift-playground

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

  

2 3

     

1 2 3 4 5

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

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

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

1 个答案:

答案 0 :(得分:2)

您可以使用

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

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

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

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

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

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