如何将用户输入的golang整数转换为函数

iecba09b  于 2023-02-14  发布在  Go
关注(0)|答案(2)|浏览(146)

我最近开始学习golang,我会在fmt.Scan()myInput函数中获得用户输入,但是当我把它放在fmt.Scan()函数中时,没有获得用户输入;
fmt.Scan()在以下示例中不工作:

package main

import (
    "fmt"
)

func myInput(p1 *int, p2 *int) {
    fmt.Println("Enter text : ")
    fmt.Scan(*p1)
    fmt.Println("Enter text : ")
    fmt.Scan(*p2)
}

func rect(x int, y int, a *int, p *int) {
    *a = x * y
    *p = 2 *(x + y)
}

func main() {

    var length, width, area, perimeter int
    myInput(&length, &width)
    rect(length, width, &area, &perimeter)
    fmt.Println(length, width, area, perimeter)

}

如何解决这个问题,谢谢,为什么不工作Scan()?

lmyy7pcs

lmyy7pcs1#

必须删除扫描方法中的&

package main

import (
    "fmt"
)

func myInput(p1 *int, p2 *int) {
    fmt.Println("Enter text : ")
    fmt.Scan(p1)
    fmt.Println("Enter text : ")
    fmt.Scan(p2)
}

func rect(x int, y int, a *int, p *int) {
    *a = x * y
    *p = 2 *(x + y)
}

func main() {

    var length, width, area, perimeter int
    myInput(&length, &width)
    rect(length, width, &area, &perimeter)
    fmt.Println(length, width, area, perimeter)

}
l7mqbcuq

l7mqbcuq2#

对于那些正在寻找答案的人来说,应该是这样的
当您将值赋给指针变量时,必须使用指向该变量的指针 *var_name指定该值
它应该类似于,//使用scanf

fmt.Scanf("%v",&*var_name)

//使用扫描

fmt.Scan(&*var_name)

下面是上面的代码应该是这样的

package main

import (
        "fmt"
)

func myInput(p1 *int, p2 *int) {
        fmt.Println("Enter length : ")
        fmt.Scan(&*p1)
        fmt.Println("Enter width : ")
        fmt.Scan(&*p2)
}

func rect(x int, y int, a *int, p *int) {
        *a = x * y
        *p = 2 * (x + y)
}

func main() {

        var length, width, area, perimeter int
        myInput(&length, &width)
        rect(length, width, &area, &perimeter)
        fmt.Println(length, width, area, perimeter)

}

相关问题