如何在golang中写入stdin?
How to write to stdin in golang?
这是我的代码
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
这是我的代码
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