package main
import "fmt"
import bf "bufio"
import "os"
import "strconv"
type SVC int
func main() {
fmt.Println("Loaded")
var gmber = bf.NewScanner(os.Stdin)
gmber.Scan()
i := 1
for i < 40 {
fmt.Println("\n")
i++
}
var input2 = bf.NewScanner(os.Stdin)
fmt.Println("Make a guess:")
var input21, err = strconv.Atoi(input2.Text())
var gmber1, err0 = strconv.Atoi(gmber.Text())
input2.Scan()
for {
if input21 == gmber1{
break
}
if input21 > gmber1 {
fmt.Println("Too high, Guess again")
input2.Scan()
}
if input21 < gmber1 {
fmt.Println("Too low, Guess again")
input2.Scan()
}
}
fmt.Println("You win!")
fmt.Println(err)
fmt.Println(err0)
}
当我运行这个程序时,我的程序总会吐出来#34;太低,再次猜猜&#34;。我输入:100作为猜测的数字,然后猜到数字101,它说太低了。我现在真的不知道该怎么做,有人知道为什么这个程序会这样做吗? 笔记: input21总是=到0
答案 0 :(得分:2)
您需要了解Scanner的工作原理。请仔细阅读Family.update(
{ groupId: someGroupId, "parents.mobile": {"$exists":"true"} },
{ $unset : { "parents.$.mobile" : 1 } }, false, true
).then(function() {
// do other stuff
});
及其方法的文档,并查看示例。
例如,“扫描将扫描仪推进到下一个令牌,然后通过字节或文本方法提供。”
对于缓冲流输入,每个文件有多个扫描程序是危险的。
猜猜你自己输入的数字并不好玩。使用随机数生成器,例如'package math / rand`。
解释代码的所有问题需要很长时间,所以这是一个简单的例子,
type Scanner
答案 1 :(得分:2)
每当您有一个返回error
值的函数时,您必须检查它是否为nil
。只有在完成后才能访问该函数返回的任何其他值。
添加正确的错误处理后,您将看到程序失败的位置。
答案 2 :(得分:0)
我没有重置扫描仪,在重新评估扫描仪的if的末尾,你必须重新声明strconv.Atoi