我想從os.Stdin中讀取長文本,但是我無法實現。已經閱讀了主題中的所有內容,嘗試了應該工作的代碼。無論如何,每種方法都會在4096個字符後切分。golang從標準輸入中讀取長文本
例如, here是一個工作示例。第一次運行循環後,它會讀取前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上的練習格式使用了長長的空間分隔線,問題仍然存在,並進行了細化。
你輸入的文本字節大小是多少?你是一次或長時間輸入所有文本嗎?並在hackerrank上提供了該問題的鏈接。請參閱:http://stackoverflow.com/questions/31333353/faster-input-scanning – 2016-08-24 04:22:37