為什麼reader.ReadString 無法正確處理分隔符號
在提供的Go 程式中,使用reader.ReadString(' 時會出現此問題n') 讀取一行文字。當使用者輸入“Alice”或“Bob”時,輸入文字包含額外的換行符,導致與指定分隔符號('n')不符。
解決方案:修剪或使用ReadLine
要解決此問題,您可以在讀取字串後修剪空格(包括換行符)或使用reader.ReadLine ()
用字串修剪空白。 TrimSpace
package main import ( "bufio" "fmt" "os" "strings" ) func main() { reader := bufio.NewReader(os.Stdin) fmt.Print("Who are you? \n Enter your name: ") text, _ := reader.ReadString('\n') if aliceOrBob(strings.TrimSpace(text)) { fmt.Printf("Hello, ", text) } else { fmt.Printf("You're not allowed in here! Get OUT!!") } }
使用ReadLine
package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(os.Stdin) fmt.Print("Who are you? \n Enter your name: ") text, _, _ := reader.ReadLine() if aliceOrBob(string(text)) { fmt.Printf("Hello, ", text) } else { fmt.Printf("You're not allowed in here! Get OUT!!") } }
透過正確處理輸入字串,程式現在可以正確識別使用者名稱是「Alice」還是「鮑伯」並做出相應的回應。
以上是為什麼 `reader.ReadString('\n')` 不能可靠地處理 Go 中的換行符?的詳細內容。更多資訊請關注PHP中文網其他相關文章!