我有一個(gè)程序正在接受一個(gè)數(shù)組并對(duì)其進(jìn)行混洗,一旦完成,它將打印出混洗數(shù)組中的第一個(gè)值之一。一旦它打印出我想要的值,就會(huì)顯示“按返回繼續(xù)”消息。此消息將一直存在,直到用戶按下返回鍵,然后它將從混洗數(shù)組中獲取下一個(gè)值。我有一個(gè)腳本可以很好地處理第一個(gè)值,但是在我按下回車鍵后,它只會(huì)在我的終端中創(chuàng)建空行。這是我的例子:package mainimport ( "bufio" "fmt" "math/rand" "os" "time")func main() { users := make(map[int]string) users[0] = "Mike" users[1] = "Paul" users[2] = "Steve" users[3] = "Lawrence" users[4] = "Stephen" users[5] = "James" getNextSpeaker(users)}func getNextSpeaker(users map[int]string) { numUsers := len(users) list := randList(1, numUsers) for _, element := range list { fmt.Println(users[element-1]) pressAnyKey() }}func randList(min, max int) []int { if max < min { min, max = max, min } length := max - min + 1 t0 := time.Now() rand.Seed(int64(t0.Nanosecond())) list := rand.Perm(length) for index, _ := range list { list[index] += min } return list}func pressAnyKey() string { fmt.Println("Press Return To Continue...") reader := bufio.NewReader(os.Stdin) input, err := reader.ReadString('.') if err != nil { panic(err) } return input}終端輸出:$ go run src/RandomMeetingSpeaker/meeting.goPaulPress Return To Continue...<empty line...><empty line...><empty line...><empty line...><empty line...>etc etc
1 回答

海綿寶寶撒
TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
ReadString
取定界符字節(jié)。在你的情況下,那是一個(gè)換行符,而不是一個(gè)點(diǎn)。只需更換線路
input, err := reader.ReadString('.')
和
input, err := reader.ReadString('\n')
和它的工作。
- 1 回答
- 0 關(guān)注
- 652 瀏覽
添加回答
舉報(bào)
0/150
提交
取消