Goでこれを行うには非常に多くのオプションがあります。たとえば、次のようにゴランの行を読み取る
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