第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在單獨的函數(shù)中編寫掃描儀以使其工作?

如何在單獨的函數(shù)中編寫掃描儀以使其工作?

Go
蝴蝶不菲 2023-02-06 18:38:14
在此代碼中,我創(chuàng)建了一個函數(shù),該函數(shù)TakeInput()也將接受用戶輸入,包括空格。但每當我運行此代碼并輸入姓名和學(xué)校名稱時,它都會為我打印數(shù)據(jù)。盡管如果我寫的scanner沒有任何功能,它會獲取帶有空格的數(shù)據(jù)。package mainimport (    "bufio"    "fmt"    "os")func TakeInput(value string) {    scanner := bufio.NewScanner(os.Stdin)    if scanner.Scan() {        value = scanner.Text()    }    if err := scanner.Err(); err != nil {        fmt.Println("Error encountered:", err)    }}func main() {    var name, school string    fmt.Printf("Enter your name: ")    TakeInput(name)    fmt.Printf("Enter your school name: ")    TakeInput(school)    fmt.Println(name, school)}
查看完整描述

1 回答

?
楊魅力

TA貢獻1811條經(jīng)驗 獲得超6個贊

每個參數(shù)都是函數(shù)內(nèi)部的本地副本。您必須將指針傳遞給TakeInput()(例如&name和&school)并修改指向的值(例如*value = scanner.Text(),否則您只修改函數(shù)返回時丟棄的副本。


例如:


func TakeInput(value *string) {

    scanner := bufio.NewScanner(os.Stdin)

    if scanner.Scan() {

        *value = scanner.Text()

    }


    if err := scanner.Err(); err != nil {

        fmt.Println("Error encountered:", err)

    }

}


func main() {

    var name, school string

    fmt.Printf("Enter your name: ")

    TakeInput(&name)


    fmt.Printf("Enter your school name: ")

    TakeInput(&school)


    fmt.Println(name, school)

}

還要注意bufio.Scanner有一個內(nèi)部緩沖區(qū)。它可能讀取的內(nèi)容多于返回的內(nèi)容,當您bufio.Scanner在另一個TakeInput()調(diào)用中創(chuàng)建新的內(nèi)容時,它可能無法讀取以前讀取、緩沖和丟棄的數(shù)據(jù)。


所以在外部創(chuàng)建掃描儀TakeInput(),例如


func TakeInput(scanner *bufio.Scanner, value *string) {

    if scanner.Scan() {

        *value = scanner.Text()

    }


    if err := scanner.Err(); err != nil {

        fmt.Println("Error encountered:", err)

    }

}


func main() {

    scanner := bufio.NewScanner(os.Stdin)


    var name, school string

    fmt.Printf("Enter your name: ")

    TakeInput(scanner, &name)


    fmt.Printf("Enter your school name: ")

    TakeInput(scanner, &school)


    fmt.Println(name, school)

}


查看完整回答
反對 回復(fù) 2023-02-06
  • 1 回答
  • 0 關(guān)注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號