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

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

如何在 golang 的控制臺中結(jié)束 `scanner.Scan` 循環(huán)?

如何在 golang 的控制臺中結(jié)束 `scanner.Scan` 循環(huán)?

Go
Helenr 2021-12-27 16:08:33
我希望程序采用兩行(或可能更多行)輸入。例如。1 2 3 45 6 7 8根據(jù)官方文檔,使用for scanner.Scan() {}會導(dǎo)致掃描無限行,直到達(dá)到 EOF 或錯誤,是否還有其他函數(shù)需要兩行輸入?
查看完整描述

3 回答

?
慕容3067478

TA貢獻(xiàn)1773條經(jīng)驗 獲得超3個贊

使用空(零長度)行從 stdin 結(jié)束用戶輸入是傳統(tǒng)的做法。例如,


package main


import (

    "bufio"

    "fmt"

    "io"

    "os"

    "strings"

)


func main() {

    snr := bufio.NewScanner(os.Stdin)

    enter := "Enter a line of data:"

    for fmt.Println(enter); snr.Scan(); fmt.Println(enter) {

        line := snr.Text()

        if len(line) == 0 {

            break

        }

        fields := strings.Fields(line)

        fmt.Printf("Fields: %q\n", fields)

    }

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

        if err != io.EOF {

            fmt.Fprintln(os.Stderr, err)

        }

    }

}

輸出:


$ go run data.go

Enter a line of data:

1 2 3 4

Fields: ["1" "2" "3" "4"]

Enter a line of data:

5 6 7 8

Fields: ["5" "6" "7" "8"]

Enter a line of data:


$


查看完整回答
反對 回復(fù) 2021-12-27
?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗 獲得超7個贊

要求用戶按“CTRL + D”,從終端發(fā)出 EOF 信號,你上面的代碼應(yīng)該沒有任何變化。


查看完整回答
反對 回復(fù) 2021-12-27
?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗 獲得超15個贊

一種方法是驗證掃描儀是否已到達(dá)文件末尾。


var s scanner.Scanner


   file, _ := os.Open("file.go") // return io.Reader


   s.Init(file) // needs io.Reader


   var character rune

   character = s.Scan()


   for character != scanner.EOF {

    // here your code

   }


查看完整回答
反對 回復(fù) 2021-12-27
  • 3 回答
  • 0 關(guān)注
  • 539 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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