这是我的代码
func InputRead() string {
reader := bufio.NewReader(os.Stdin);
fmt.Print("> ");
text, _ := reader.ReadString('n');
text = strings.Replace(text, "n", "", -1);
}
我想在os中放置一些字符串。Stdin,我该如何做到这一点?它应该出现> HAHA
,然后我的光标应该能够删除类似于<input>
的HAHA,并在HTML中预填充文本
在python3中,它的实现方式类似于
def stdininput(prompt, text):
def hook():
readline.insert_text(text)
readline.redisplay()
readline.set_pre_input_hook(hook)
result = input(prompt)
readline.set_pre_input_hook()
return result
import readline
print(stdininput('> ', 'haha'))
对于那些觉得很难理解的人,我只是要求在不打字的情况下输入某个文本(我们在被要求输入时输入的文本,可以删除它(。比如,如果用户被要求输入,我想提供一个默认的输入,这样用户就不必键入。
从那以后,没有人回答。在搜索了这么长一段时间的所有函数后,我终于从readline库中找到了一个函数,正如kostix所说。下面是示例程序。
root@kali-linux:/tmp# cat main.go
package main
import "github.com/chzyer/readline"
import "fmt"
func main() {
input, _ := readline.New("> ");
defer input.Close();
datax := "Hey niko my friend"; //GTA IV
data2 := []byte(datax);
input.WriteStdin(data2);
value, _ := input.Readline()
fmt.Println(value);
}
root@kali-linux:/tmp# go run main.go
> Hey niko my friend