我正在使用fmt.Scanf
来读取Golang中的字符串输入。但是当我们传入大输入(> 1024个字符)时,命令会停止。我正在使用Go版go1.8.3 darwin/amd64
。
这是代码
package main
import "fmt"
func main() {
var s string
fmt.Scanf("%s", &s)
fmt.Println(s)
}
以下是https://pastebin.com/raw/fJ4QAZUZ
失败的有效负载 Go似乎在该有效负载中输入Jy
,标记1024个字符。 1024是限制还是什么?
PS - 我已经在该链接上篡改了编码的cookie,所以不用担心。
答案 0 :(得分:6)
这不是fmt
包或fmt.Scanf()
的限制,此示例正确扫描超过3KB:
// src is a looooong text (>3KB)
var s string
fmt.Println(len(src))
fmt.Sscanf(src, "%s", &s)
fmt.Println(len(s))
上试试
这很可能是您终端的限制。我还尝试了你的未修改版本,粘贴了超过10KB的文本,结果是4096字节(Ubuntu linux 16.04,Bash)。