Как читать с клавиатуры в Swift 4.1.2? [Дубликат]

слишком поздно для вечеринки здесь, но я все равно добавлю свои $ 0.02, Google выпустил бесплатный образец под названием универсальный музыкальный плеер, с помощью которого вы сможете научиться транслировать музыку на всех платформах Android (авто, смотреть, мобильно, тв .. ) он использует сервис, чтобы воспроизводить музыку в фоновом режиме, действительно ли это очень полезно. вот ссылка на проект https://github.com/googlesamples/android-UniversalMusicPlayer

6
задан Vinod Rathod 13 February 2016 в 14:59
поделиться

5 ответов

Игровая площадка не может прочитать ввод из строки commend.

Вы можете использовать пользовательскую функцию readLine () и глобальную входную переменную, каждый элемент входного массива представляет строку:

import Foundation

var currentLine = 0
let input = ["5", "5 6 3"]

func readLine() -> String? {
    if currentLine < input.endIndex {
        let line = input[currentLine]
        currentLine += 1
        return line
    } else {
        return nil
    }
}

let firstLine = readLine() //  5
let secondLine = readLine() // 5 6 3
let thirdLine = readLine() // nil
2
ответ дан EdiZ 17 August 2018 в 11:32
поделиться
  • 1
    Это отличное решение для использования на таких сайтах, как HackerRank, когда вы используете Xcode Playground для работы с вашим кодом. – Mark Gerrior 26 January 2018 в 00:33

Перейдите к

New> Project> MacOs> Инструмент командной строки

, после чего вы можете применить:

let value1: String?

value1 = readLine()
print(value ?? "")

"" для значения по умолчанию

-1
ответ дан Eyad bassam 17 August 2018 в 11:32
поделиться

Попробуйте использовать Необязательный цепочки :

if let input = readLine() {
    print("Input: \(input)")
} else {
    print("No input.")
}
2
ответ дан Henrik Gustafsson 17 August 2018 в 11:32
поделиться
  • 1
    Очевидно, что это будет печатать & quot; Нет ввода.\n & quot; на детской площадке. Но это не может быть ответом на мой вопрос. Да, это был хороший трюк – Vinod Rathod 13 February 2016 в 15:29
  • 2
    Насколько я знаю, невозможно использовать стандартный вход с игровой площадки. Это всего лишь способ обойти проблему nil. Он должен работать, как только вы запускаете его за пределами игровой площадки. – Henrik Gustafsson 13 February 2016 в 15:43
  • 3
    можете ли вы сказать мне, почему этот код работает var input = readLine() и почему не этот var input = readLine()! на игровой площадке. – Vinod Rathod 13 February 2016 в 15:48
  • 4
    @VinodRathod на моей игровой площадке (Xcode 7.2.1), он «запускает форвард» (поэтому readLine не возвращается) – user3441734 13 February 2016 в 15:49

Исправлено решение для SWIFT 3

Чтобы заставить его работать, создайте новый инструмент инструмента командной строки.

Перейдите в «Файл» -> «Создать» -> «Проект», -> «macOS» -> «Инструмент командной строки».

import Foundation

print("Hello, World!")


func solveMefirst(firstNo: Int , secondNo: Int) -> Int {
    return firstNo + secondNo
}

func input() -> String {
    let keyboard = FileHandle.standardInput
    let inputData = keyboard.availableData
    return NSString(data: inputData, encoding:String.Encoding.utf8.rawValue) as! String
}

let num1 = readLine()
let num2 = readLine()

var IntNum1 = Int(num1!)
var IntNum2 = Int(num2!)

print("Addition of numbers is :  \(solveMefirst(firstNo: IntNum1!, secondNo: IntNum2!))")

И запустите проект, используя CMD + R

3
ответ дан MANISH PATHAK 17 August 2018 в 11:32
поделиться

Для получения ввода из командной строки, например Console.ReadLine ... Chalkers имеет решение следующим образом.

func input() -> String {
    var keyboard = NSFileHandle.fileHandleWithStandardInput()
    var inputData = keyboard.availableData
    return NSString(data: inputData, encoding:NSUTF8StringEncoding) as! String
}

, пожалуйста, спросите, если это не так работа Винод.

0
ответ дан user 17 August 2018 в 11:32
поделиться
  • 1
    no this function input () не совпадает с readLine (). Я беспокоюсь о том, как получить стандартный ввод от пользователя на игровой площадке – Vinod Rathod 13 February 2016 в 14:25
Другие вопросы по тегам:

Похожие вопросы: