从 Go 中的标准输入读取时允许超过 1024 个字符的推荐方法是什么?
例如,此代码使用bufio.Scanner的最大输入长度为 1024。
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
input := scanner.Text()
fmt.Println(input)
}
在一些建议的答案之后更新......对不起,我一定仍然做错了什么,或者错误地陈述了问题。我尝试了这两个建议,但仍然看到相同的问题。下面是代码的更新版本。症状是扫描仪不接受第 1024 个字符之后的输入。例如,尝试运行它然后粘贴一个长度为 1025 个字符的字符串,它会在字符 1024 之后停止接受输入。
package main
import (
"bufio"
"bytes"
"fmt"
"log"
"os"
)
func main() {
var buffer bytes.Buffer
scanner := bufio.NewScanner(os.Stdin)
for {
done := scanner.Scan()
buffer.WriteString(scanner.Text())
if done == true {
if scanner.Err() != nil {
log.Fatal("Error scanning input")
}
break
}
}
fmt.Println(buffer.String())
}
一只斗牛犬
拉丁的传说
慕仙森
相关分类