为了账号安全,请及时绑定邮箱和手机立即绑定

在 linux 上正确运行程序,但在 windows 上不能

在 linux 上正确运行程序,但在 windows 上不能

Go
MYYA 2023-05-08 15:25:51
我目前正在学习 Go 语言。在不同的平台上尝试:Linux、Windows 当我在 Linux 上运行代码时它运行得很好,但是当我在 Windows 上尝试这个程序时它不起作用。它只是简单的 cmd 计算器,允许简单的操作,如加数、乘法等。它不处理像字符这样的错误输入。这是我第一个采用 Go 语法的程序什么不起作用:解析整数比较输入代码:package mainimport (    "bufio"    "fmt"    "math"    "os"    "strconv"    "strings")func main() {    reader := bufio.NewReader(os.Stdin)    var operation int    var firstNumber float64    var secondNumber float64    fmt.Println("Simple cmd calculator")    repeat := true    for repeat {        fmt.Println("Enter number 1: ")        firstNumber = getNumber(*reader)        fmt.Println("Enter number 2: ")        secondNumber = getNumber(*reader)        fmt.Println()        selectOperation(*reader, &operation)        fmt.Print("You result is: ")        switch operation {        case 1:            fmt.Println(add(firstNumber, secondNumber))        case 2:            fmt.Println(subtract(firstNumber, secondNumber))        case 3:            fmt.Println(multiply(firstNumber, secondNumber))        case 4:            fmt.Println(divide(firstNumber, secondNumber))        }        fmt.Println("Do you want to continue? [Y/n]")        input, _ := reader.ReadString('\n')        input = strings.Replace(input, "\n", "", -1)        if !(input == "Y" || input == "y") {            repeat = false        }    }}func selectOperation(reader bufio.Reader, operation *int) {    fmt.Println("1. Add")    fmt.Println("2. Subtract")    fmt.Println("3. Multiply")    fmt.Println("4. Divide")    fmt.Print("Select operation: ")    input, _ := reader.ReadString('\n')    input = strings.Replace(input, "\n", "", -1)    number, _ := strconv.Atoi(input)    *operation = number}结果:Linux视窗我做错了什么还是不是我的错?
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

答案是:

input = strings.Replace(input, "\r", "", -1)
input = strings.Replace(input, "\n", "", -1)

现在它可以在 windows 和 linux 上正常工作


查看完整回答
反对 回复 2023-05-08
  • 1 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信