我用Go语言输入值的语法
我一直在寻找一种方法,如何在C语言中使用这样的语法我用Go语言输入值的语法,go,Go,我一直在寻找一种方法,如何在C语言中使用这样的语法 scanf("%d",&num); 我在Go Lanuguage发现你可以用这个 fmt.scanf("%d",&num) 问题是当我使用它两次时,它不允许我在第二部分输入值 例如: package main import "fmt" func main() { var name string var age int fmt.Print("Enter your name: ") fmt.S
scanf("%d",&num);
我在Go Lanuguage发现你可以用这个
fmt.scanf("%d",&num)
问题是当我使用它两次时,它不允许我在第二部分输入值
例如:
package main
import "fmt"
func main() {
var name string
var age int
fmt.Print("Enter your name: ")
fmt.Scanf("%s", &name)
fmt.Print("\nEnter your age: ")
fmt.Scanf("%d", &age)
fmt.Println(name,"is",age,"years of Age")
}
示例输入名称=Jack,年龄=18(这是问题的一部分,它不允许我输入年龄)
它将显示
Jack is 0 years of age
您可以将最后一行替换为以下内容:
fmt.Printf("%s is %d years of age", name, age)
以下是完整的代码:
package main
import "fmt"
func main() {
var name string
var age int
fmt.Print("Enter your name: ")
fmt.Scanf("%s", &name)
fmt.Print("Enter your age: ")
fmt.Scanf("%d", &age)
fmt.Printf("\n%s is %d years of age \n", name, age)
}
输出:
输入您的姓名:rex
请输入您的年龄:33
雷克斯33岁
试试这个:
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
r := bufio.NewReader(os.Stdin)
fmt.Print("Enter your name: ")
name, _ := r.ReadString('\n')
fmt.Print("Enter your age: ")
age, _ := r.ReadString('\n')
name, age = strings.TrimSpace(name), strings.TrimSpace(age) //remove \n
fmt.Println(name, "is", age, "years of Age")
}
它仍然不起作用…问题是它不允许我在第二部分“输入你的年龄”中输入它直接进入“雷克斯是0岁”@shadowj3yz你确定吗?我把我的代码放在main.go上面,然后运行“go run main.go”,然后我被要求输入第二部分(年龄)。我在回答中指出的输出是我运行代码时得到的实际输出。@shadowj3yz您在围棋场上运行它吗?Stdin在那里不工作,请尝试在本地运行它。我正在windows中通过命令使用Go编程语言promt@shadowj3yz我认为在这种情况下,在windows和linux上工作并不重要。复制和粘贴“我的代码”没有得到所需的结果?您忽略了
Scanf
的返回值,因此在调试问题时,首先要检查这些值。是否使用输入文件?试着不用它,而是用键盘,只需“go run xxx.go”,然后插入插孔(return)18(return)。它在Linux中适用于我。