package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Println("Enter String=>")
a1, _ := reader.ReadString('\n')
a1 = strings.Replace(a1, "\n", "", -1)
b1 := strings.Split(a1, " ")
var b2 [2]int
for i := 0; i < 2 ; i++ {
b2[i], _ = strconv.Atoi(b1[i])
}
fmt.Println(b2[0] + b2[1])
}
此代码生成以下输出
Enter String=> 5 6
5
但在Jetbrains Goland中,它会产生正确的输出。
发布于 2021-09-25 08:37:41
Windows以CRLF (\r\n
)结束行。使用strings.TrimSpace,而不是Replace。
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Println("Enter String=>")
a1, _ := reader.ReadString('\n')
a1 = strings.TrimSpace(a1)
b1 := strings.Split(a1, " ")
var b2 [2]int
for i := 0; i < 2 ; i++ {
b2[i], _ = strconv.Atoi(b1[i])
}
fmt.Println(b2[0] + b2[1])
}
或者,使用strings.Fields代替Replace和Split。
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Println("Enter String=>")
a1, _ := reader.ReadString('\n')
b1 := strings.Fields(a1)
var b2 [2]int
for i := 0; i < 2; i++ {
b2[i], _ = strconv.Atoi(b1[i])
}
fmt.Println(b2[0] + b2[1])
}
https://stackoverflow.com/questions/69324237
复制相似问题