我目前正在学习 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 上正常工作
- 1 回答
- 0 关注
- 166 浏览
添加回答
举报
0/150
提交
取消