2 回答

TA貢獻1869條經驗 獲得超4個贊
擺脫掃描儀(您已經說過您更喜歡 ReadLine())并更改 nextInt() 函數以調用 nextLine(),如下所示:
func nextInt() int {
i, e := strconv.Atoi(nextLine())
if e != nil {
panic(e)
}
return i
}
(順便說一句,對錯誤的用戶輸入感到恐慌并不是一個好主意,但我認為這只是一個測試,您不會對生產代碼這樣做:)

TA貢獻1111條經驗 獲得超0個贊
你可以嘗試不使用掃描儀,也許像這樣 Readline 會為你獲取數字,只需轉換它
package main
import (
"bufio"
"fmt"
"io"
"os"
"strconv"
)
var rd = bufio.NewReaderSize(os.Stdin, 1000000)
func nextLine() string {
buf := make([]byte, 0, 1000000)
for {
line, isPrefix, err := rd.ReadLine()
if err == io.EOF {
break
} else if err != nil {
panic(err)
}
buf = append(buf, line...)
if !isPrefix {
break
}
}
return string(buf)
}
func main() {
var s string
var a int
s = nextLine()
fmt.Println(s)
s = nextLine()
a, e := strconv.Atoi(s)
if e != nil {
panic(e)
}
fmt.Println(a)
}
- 2 回答
- 0 關注
- 169 瀏覽
添加回答
舉報