亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

golang 從標準輸入讀取長文本

golang 從標準輸入讀取長文本

Go
嚕嚕噠 2022-03-03 15:00:34
我想從 os.Stdin 閱讀長文本,但我做不到。已經閱讀了該主題的所有內容,嘗試了應該可以工作的代碼。無論如何,每種方法都會在 4096 個字符后剪切。例如。這是一個工作示例。在循環第一次運行后,它讀取前 4096 個字符,然后等待每次輸入的更多處理,直到我以 EOF (Ctrl+D) 結束它。fmt.Scan、bufio.NewScanner、bufio ReadLine、ioutil.ReadAll 也是如此。如果我將它保存到文件中并讀取它,它會按預期工作。從標準輸入它沒有。我在 Arch Linux 上,32 位,Go 1.7,在 mate-terminal 1.14,tty 8.25 中測試,兩者都是一樣的。在hackerrank.com 頁面上也發生了同樣的事情,我不知道他們使用的是什么技術。請幫忙!編輯:我的輸入只是比 4096 個字符長一點。我查看了Amd共享的鏈接,我得到了以下信息:我的輸入只有一行包含空格分隔的整數。當我將空格更改為換行符時,它起作用了。但是由于hackerrate的練習格式使用了很長的空格分隔的行,所以問題仍然存在,需要改進。
查看完整描述

1 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

感謝 Ian Lance Taylor,我能夠解決這個問題: https ://groups.google.com/forum/#!topic/golang-nuts/ndh-1wdsWYs

所以 4096 個字符是我系統通過 N_TTY_BUF_SIZE 內核參數的限制。同樣的事情也適用于 cat 和 Python。

無論如何,在hackerrank.com 上,我能夠用Python 解決相同的練習,所以我猜他們對Go 的配置有誤,我已經讓他們找出來了。


查看完整回答
反對 回復 2022-03-03
  • 1 回答
  • 0 關注
  • 230 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號