Go 终端输入不';与预期结果不符
我是新来的 我编写了下面的程序,允许用户输入名称Go 终端输入不';与预期结果不符,go,gofmt,Go,Gofmt,我是新来的 我编写了下面的程序,允许用户输入名称 package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(os.Stdin) fmt.Print("Enter name:") name, err := reader.ReadString('\n') if err != nil { panic(err)
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter name:")
name, err := reader.ReadString('\n')
if err != nil {
panic(err)
}
fmt.Println(name == "nixon")
}
我运行了这个程序,输入了我的名字,尼克松
为什么
fmt.Println(name==“nixon”)
的输出总是false
?修改主函数如下:
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter name:")
name, err := reader.ReadString('\n')
if err != nil {
panic(err)
}
name = strings.TrimSuffix(name, "\n")
fmt.Println(name == "nixon")
}
我添加到代码中的行将从您的输入中修剪新行字符。修改您的主函数,如下所示:
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter name:")
name, err := reader.ReadString('\n')
if err != nil {
panic(err)
}
name = strings.TrimSuffix(name, "\n")
fmt.Println(name == "nixon")
}
我添加到代码中的行从输入中修剪新行字符
ReadString一直读取,直到输入中第一次出现delim,
返回一个字符串,该字符串包含在
定界符
name
终端输入包括尾随的换行符。比如说,
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter name:")
name, err := reader.ReadString('\n')
if err != nil {
panic(err)
}
fmt.Printf("%q\n", name)
fmt.Println(name == "nixon")
}
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter name:")
name, err := reader.ReadString('\n')
if err != nil {
panic(err)
}
fmt.Printf("%q\n", name)
name = strings.TrimRight(name, "\r\n")
fmt.Printf("%q\n", name)
fmt.Println(name == "nixon")
输出(Linux):
输出(窗口):
修剪尾随的换行符。比如说,
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter name:")
name, err := reader.ReadString('\n')
if err != nil {
panic(err)
}
fmt.Printf("%q\n", name)
fmt.Println(name == "nixon")
}
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter name:")
name, err := reader.ReadString('\n')
if err != nil {
panic(err)
}
fmt.Printf("%q\n", name)
name = strings.TrimRight(name, "\r\n")
fmt.Printf("%q\n", name)
fmt.Println(name == "nixon")
}
输出(Linux):
输出(窗口):
ReadString一直读取,直到输入中第一次出现delim,
返回一个字符串,该字符串包含在
定界符
name
终端输入包括尾随的换行符。比如说,
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter name:")
name, err := reader.ReadString('\n')
if err != nil {
panic(err)
}
fmt.Printf("%q\n", name)
fmt.Println(name == "nixon")
}
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter name:")
name, err := reader.ReadString('\n')
if err != nil {
panic(err)
}
fmt.Printf("%q\n", name)
name = strings.TrimRight(name, "\r\n")
fmt.Printf("%q\n", name)
fmt.Println(name == "nixon")
输出(Linux):
输出(窗口):
修剪尾随的换行符。比如说,
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter name:")
name, err := reader.ReadString('\n')
if err != nil {
panic(err)
}
fmt.Printf("%q\n", name)
fmt.Println(name == "nixon")
}
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter name:")
name, err := reader.ReadString('\n')
if err != nil {
panic(err)
}
fmt.Printf("%q\n", name)
name = strings.TrimRight(name, "\r\n")
fmt.Printf("%q\n", name)
fmt.Println(name == "nixon")
}
输出(Linux):
输出(窗口):
刚刚添加了这个,它成功了
name=strings.TrimRight(name,“\r\n”)
\o刚刚添加了这个,它成功了name=strings.TrimRight(名称“\r\n”)
\o