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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在Go中的fmt.Scanf()之后刷新Stdin?

如何在Go中的fmt.Scanf()之后刷新Stdin?

Go
紅顏莎娜 2021-04-28 14:12:25
目前,這是一個(gè)困擾我的問(wèn)題。當(dāng)從用戶那里獲得輸入時(shí),我想采用一個(gè)循環(huán)來(lái)要求用戶重試,直到他們輸入有效的輸入為止:// user_input.gopackage mainimport (    "fmt")func main() {    fmt.Println("Please enter an integer: ")    var userI int    for {        _, err := fmt.Scanf("%d", &userI)        if err == nil {            break        }        fmt.Println("Sorry, invalid input. Please enter an integer: ")    }    fmt.Println(userI)    }運(yùn)行上面的命令,如果用戶輸入有效的輸入,則沒(méi)有問(wèn)題:請(qǐng)輸入一個(gè)整數(shù): ?3?3?退出代碼0,進(jìn)程正常退出。?但是,請(qǐng)嘗試輸入字符串呢?請(qǐng)輸入一個(gè)整數(shù): ?什么?抱歉,輸入無(wú)效。請(qǐng)輸入一個(gè)整數(shù):?對(duì)不起,輸入無(wú)效。請(qǐng)輸入一個(gè)整數(shù):?對(duì)不起...等等,它會(huì)不斷地逐個(gè)字符地循環(huán),直到字符串用盡為止。即使輸入單個(gè)字符也會(huì)循環(huán)兩次,我假設(shè)它會(huì)解析換行符。無(wú)論如何,必須有一種在Go中刷新Stdin的方法嗎?PS在沒(méi)有此類功能的情況下,您將如何解決該功能以提供等效功能?即使那樣我也失敗了...
查看完整描述

3 回答

?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊

我將通過(guò)在每次失敗后讀取直到行尾來(lái)解決此問(wèn)題。這將清除其余的文本。


package main


import (

    "bufio"

    "fmt"

    "os"

)


func main() {

    stdin := bufio.NewReader(os.Stdin)


    fmt.Println("Please enter an integer: ")


    var userI int


    for {

        _, err := fmt.Fscan(stdin, &userI)

        if err == nil {

            break

        }


        stdin.ReadString('\n')

        fmt.Println("Sorry, invalid input. Please enter an integer: ")

    }


    fmt.Println(userI)

}


查看完整回答
反對(duì) 回復(fù) 2021-05-31
?
一只斗牛犬

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊

我知道這已經(jīng)得到回答,但這是我的實(shí)現(xiàn):


func flush (reader *bufio.Reader) {

    var i int

    for i = 0; i < reader.Buffered(); i++ {

        reader.ReadByte()

    }

}

這應(yīng)該在每種情況下都適用,包括無(wú)法使用“ stdin.ReadString('\ n')”的情況。


查看完整回答
反對(duì) 回復(fù) 2021-05-31
  • 3 回答
  • 0 關(guān)注
  • 262 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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