【发布时间】:2019-06-08 20:44:36
【问题描述】:
首先,我是 Go 编程的新手。我有一个简单的 Golang 程序,它在 Linux 环境中提供正确的输出,但在我的 Windows 10 PC 中却没有。
代码如下:
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
tarr := strings.Split(strings.Trim(text, "\n"), " ")
for i := 0; i < len(tarr); i++ {
num, _ := strconv.ParseInt(tarr[i], 10, 32)
fmt.Println(num)
}
fmt.Println(tarr)
reader.ReadString('\n')
}
如果我从终端输入 1 2 3 作为输入,我会在 Windows 10(go 版本 go1.12.5 windows/amd64)中得到以下输出:
1
2
0
]1 2 3
我在 Linux Elementary OS (go version go1.12.5 linux/amd64) 中得到以下输出
1
2
3
[1 2 3]
谁能解释为什么会这样?
【问题讨论】:
-
你试过做
go build然后执行.exe文件吗? -
@ParnabSanyal 是的,我已经尝试过这样做,并且在 Windows 10 PC 上得到了相同的结果。
-
不要忽略错误,windows 使用
\r\n换行。 -
我在终端@JimB 中没有收到任何错误
-
您忽略了来自
ParseInt的错误值。尝试打印您阅读的文字字符串。
标签: go