gpt4 book ai didi

go - Windows 和 Linux 下 Go 的不同执行

转载 作者:IT王子 更新时间:2023-10-29 01:41:33 26 4
gpt4 key购买 nike

我用围棋创建了一个非常小的猜数游戏。问题是,它在 Windows 和 Linux 下的执行方式不同。例如,通过在 Ubuntu 上执行它,一切正常。但是当我尝试在 Windows 下启动它时,它编译得很好但是在执行期间当我输入一些东西(例如 5)时它会打印两次“小于随机数”或“大于随机数”。我不知道为什么会这样。

package main

import (
"fmt"
"math/rand"
"time"
)

func main () {
var number int //declaration
var tries int = 0
random_number := random(1, 9) //gets random number
for ; ;tries++ {
//fmt.Printf("Enter your prediction: ")
fmt.Scanf("%v",&number)
if number == random_number {
break;
} else if number<random_number{
fmt.Printf("Smaller than random num\n")
} else {
fmt.Printf("Bigger than random num\n")
}
}
fmt.Printf("You guessed correctly in %v tries",tries)

}

func random(min, max int) int {
rand.Seed(time.Now().Unix())
return rand.Intn(max - min) + min
}

最佳答案

Linux 和 Windows 中的换行符不同,因此您的程序的行为也不同。

查看本期:https://github.com/golang/go/issues/5391

要解决此问题,您可以用此替换 Scanf(注意末尾的“\n”):

fmt.Scanf("%v\n",&number)

关于go - Windows 和 Linux 下 Go 的不同执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43829627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com