代码:
```go
package main
import (
"fmt"
)
func main() {
var (
num1 float64
num2 float64
operator byte
num3 float64
num4 float64
operator2 byte
)
fmt.Println("请输入第一个数NUM1的值")
fmt.Scanln(&num1)
fmt.Println("请输入第二个数NUM2的值")
fmt.Scanln(&num2)
fmt.Println("请输入一个运算符")
fmt.Scanf("%c",&operator)
fmt.Printf("(num1)%v %c (num2)%v的结果是 \n",num1,operator,num2)
fmt.Println("请输入NUM3的值")
**fmt.Scanln(&num3)**
fmt.Println("请输入NUM4的值")
fmt.Scanln(&num4)
fmt.Println("输入运算符")
fmt.Scanf("%c",&operator2)
fmt.Printf("(num3)%v %c (num4)%v的结果是",num3,operator2,num4)
}
```
输出结果:
请输入第一个数NUM1的值
1
请输入第二个数NUM2的值
1
请输入一个运算符
+
(num1)1 + (num2)1的结果是
请输入NUM3的值
请输入NUM4的值
1
输入运算符
+
(num3)0 + (num4)1的结果是
**问题:NUM3直接跳过,不能输入值,NUM4可以输入请大师们赐教。。。。。**
![Scanln问题.png](https://static.studygolang.com/191126/78305c472bf6ae7e836a3593c494bcbb.png)
![Scanln问题2.png](https://static.studygolang.com/191126/230635849254c58c0029f8722889d869.png)
12楼 <a href="/user/anko" title="@anko">@anko</a> 谢谢大师指点,显示我这边可以,我的问题是Scanf不能输入两次
![1.png](https://static.studygolang.com/191128/235c70dec925fb9b096a65fafa6ff148.png)![scanf问题.png](https://static.studygolang.com/191128/cadd51e1a779239c4dc64759b1ec0f67.png)
#13
更多评论
当且仅当前面的输入类型不对,或者scan函数出错情况下,才会出现你的这种情况,所以,我们要捕获scan()系列方法的返回值,如果返回值不为nil,则不要再继续往下执行scan了,如果还继续scan,则会出现你的这种情况!
#2