无法在Go中读取大于1024个字符的输入

Avi*_*Avi 3 go

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)
}
Run Code Online (Sandbox Code Playgroud)

这是有效负载失败https://pastebin.com/raw/fJ4QAZUZ

Go似乎接受输入,直到Jy标记1024个字符的有效负载.1024是限制还是什么?

PS - 我已经在那个链接上篡改了编码的cookie,所以不用担心.

icz*_*cza 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))
Run Code Online (Sandbox Code Playgroud)

Go Playground尝试一下

这很可能是您终端的限制.我也尝试了你未经修改的版本,粘贴了超过10KB的文本,结果是4096字节(Ubuntu linux 16.04,Bash).