Есть так много вариантов сделать это в Go. Например:Читать строку в golang
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
или
reader := bufio.NewReader(os.Stdin)
text, _ := reader.ReadString('\n')
Ни работает в моем случае. Я не могу найти причину, по которой новое сканирование строк не работает.
Вот вопрос, я работаю над: https://www.hackerrank.com/challenges/30-dictionaries-and-maps
И вот мой код:
package main
import (
"fmt"
"bufio"
"os"
"strings"
)
func main() {
var count int
fmt.Scan(&count)
m := make(map[string]string)
for i := 0; i<count; i++{
reader := bufio.NewReader(os.Stdin)
text,err := reader.ReadString('\n')
if err != nil {
fmt.Println(err)
}
value := strings.Fields(text)
m[value[0]] = value[1]
}
var names []string
for i := 0; i<count; i++{
var name string
fmt.Scan(&name)
names = append(names,name)
}
for j:= 0; j<len(names);j++{
if m[names[j]] != ""{
fmt.Println(names[j] +" = "+ m[names[j]])
}else{
fmt.Println("Not found")
}
}
}
Он работает в моем редакторе, но когда я использую вход на вопрос, он не работает ,
Что фактический вопрос? Вы получаете сообщение об ошибке? Неверный выход? (Если да, то какой ввод и что не так получается?) – smarx
Я замечаю, что вы только читаете 'count' запросы (после записей в телефонной книге' count'), несмотря на то, что в вопросе говорится, что вы получите неизвестный номер , Не уверен, есть ли другие ошибки ... это поможет, если вы скажете нам, какая у вас проблема. – smarx
Другая проблема, которую я заметил: у вас есть пробелы вокруг '=' в вашем выпуске. (Вы выведете 'foo = 1234' вместо' foo = 1234'.) – smarx