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

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

golang中的文件輸入

golang中的文件輸入

Go
翻翻過去那場雪 2021-06-10 17:21:58
我是 Go 的新手(就像在最后一天一樣)并且正在玩一個處理來自 stdin 的數(shù)據(jù)的簡單程序。我想要做的是,如果沒有向標準輸入提供數(shù)據(jù),那么程序?qū)⑤敵鲆粋€幫助屏幕,然后退出。我遇到的問題是,當沒有通過標準輸入提供數(shù)據(jù)時,程序似乎無限期掛起。這是該程序和我的預(yù)期用途的簡短示例:package mainimport (    "fmt"    "bufio"    "os")func main() {    scanner := bufio.NewScanner(os.Stdin)    scanner.Split(bufio.ScanLines)    for scanner.Scan() {        str := scanner.Text()        fmt.Println(str)    }}Running with input:go run test.go < lines.txtline1line2line3Running with no input:go run test.go我不提供輸入的第二種情況是導(dǎo)致程序掛起的原因。通讀文檔,我不清楚如何編寫程序以不無限期地等待輸入,而是在 stdin 上不存在任何內(nèi)容時中斷。
查看完整描述

2 回答

?
慕姐4208626

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

該程序的行為與代碼所說的完全一樣。代碼說從標準輸入讀取。可以通過重定向提供 stdin 的輸入(如您所示)?;蛘咄ㄟ^管道?;蛘?... 或者通過用戶在鍵盤上打字。如果在最后一種情況下程序會在人類進入某些東西之前退出,那將是非常令人驚訝的。


一種常見的方法是執(zhí)行類似(簡化)的操作:


var in *os.File

var err error


switch name := flag.Arg(0); {

case name == "":

        in = os.Stdin

default:

        if in, err = os.Open(name); err != nil {

                log.Fatal(err)

        }

}

IE。允許處理作為命令行參數(shù)給出的命名文件 - 但當沒有文件名參數(shù)提供給程序時,回退/默認讀取標準輸入。


這種方法可以很好地與 shell 腳本、通過管道鏈接命令等配合使用。


查看完整回答
反對 回復(fù) 2021-06-21
  • 2 回答
  • 0 關(guān)注
  • 330 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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