There are so many option to do this in Go. For example:
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
or
reader := bufio.NewReader(os.Stdin)
text, _ := reader.ReadString('\n')
Neither is working in my case. I am unable to find the reason why new line scan is not working.
Here's the question I'm working on: https://www.hackerrank.com/challenges/30-dictionaries-and-maps
And here's my code:
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")
}
}
}
It is working in my editor, but when I use the question's input, it doesn't work.
count
queries (after thecount
phone book entries) despite the fact that the question says you'll receive an unknown number. Not sure if there are other bugs... it would help if you would tell us what problem you're having. – Lues=
in your output. (You'll outputfoo = 1234
instead offoo=1234
.) – Luesstrings.Split(...)
function sometimes only decodes an empty array. – Fonteynstrings.Split
orstrings.Fields
. (I just usedfmt.Scan
for that part.) – Lues