golang 读取超过一行的文本输入并停止 ctrl+s

如何在 golang,控制台输入中读取多于一行。


reader := bufio.NewReader(os.Stdin)


fmt.Println("Enter Text:")


text, _ := reader.ReadString('\n')

如果用户点击,我必须如何更改 ReadString(???) 以停止阅读:ctrl+s 新行 ( \n) 必须保持输入的组成部分。


是否有一些图书馆/框架?


感谢您的每一个帮助。


料青山看我应如是
浏览 215回答 1
1回答

千万里不及你

这是 Linux 的答案(也适用于其他 *nix 平台)Ctrl+S是一个控制字符DC3,意思是“XOFF,停止发送”。如果你按下Ctrl+S终端会冻结。Ctrl+Q是一个控制字符DC1,意思是“XON,继续发送”,Ctrl+S解冻后需要。要使用Ctrl+S,第一禁用XON/XOFF与stty -ixon(可能在启动脚本)禁用之后XON/XOFF,将样品代码以下(DC3是HEX:13 / DEC:19 ASCII表);package mainimport (    "bufio"    "fmt"    "os")func main() {    reader := bufio.NewReader(os.Stdin)    fmt.Println("Enter Text:")    text, _ := reader.ReadString('\x13')    fmt.Println(text)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go