package main
import (
"Golang/myfunc"
"fmt"
)
func main() {
//初始化,检测本地包引入
var ans string
fmt.Println("选择线程")
fmt.Scanf("%s", &ans)
if ans == "1" {
myfunc.SayHello()
c1 := &myfunc.Cat{
Feet: 4,
Animal: &myfunc.Animal{
Name: "喵酱",
},
}
c1.Meow()
c1.Move()
} else if ans == "2" {
//test大段作业
class := &myfunc.Class{}
class.StudentMap = make(map[string]*myfunc.Student, 36)
flag := true
for flag {
myfunc.Menu()
var mode int
fmt.Scanf("%d", &mode)
switch mode {
case 0:
flag = false
case 1:
class.GothroughStudent()
case 2:
class.AddStudent()
case 3:
var index int
fmt.Println(">>>1. 修改姓名 2. 修改年龄 3. 修改成绩<<<\n>>>")
fmt.Scanln(&index)
switch index {
case 1:
class.SetName()
case 2:
class.SetAge()
case 3:
class.SetMark()
default:
fmt.Println("输入有误")
}
case 4:
class.DeleteStudent()
default:
fmt.Println("输入有误")
}
}
}
}
当中键入选择线程2后只会显示
PS E:\Code\Golang> go run "e:\Code\Golang\main.go"
选择线程
2
>>> 学生信息管理系统 <<<
>>>1. 展示 2. 添加 3. 编辑 4. 删除 0.退出<<<
>>>请选择
PS E:\Code\Golang>
Menu()后的scanf直接被跳过了!
不知道问题出现在了哪
最后附上Menu()
//菜单管理
func Menu() {
fmt.Println(">>> 学生信息管理系统 <<<")
fmt.Println(">>>1. 展示 2. 添加 3. 编辑 4. 删除 0.退出<<<")
fmt.Println(">>>请选择")
}
你改成我这样试试看:
fmt.Scanf("%s", &ans) 默认输入了""空字符串。 改成fmt.Scan(&ans)
我感觉你的代码是不是有问题,你执行这个,看下有交互不:
package main
import "fmt"
func main() {
var name string
fmt.Printf("请输入内容:")
fmt.Scan(&name)
fmt.Println("name:", name)
fmt.Printf("请输入内容2:")
fmt.Scanf("%s", &name)
fmt.Println("name:", name)
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
改成 fmt.Scanf("%d\n", &mode)