为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
料青山看我应如是 2021-09-10 15:32:25
如何在 golang,控制台输入中读取多于一行。reader := bufio.NewReader(os.Stdin)fmt.Println("Enter Text:")text, _ := reader.ReadString('\n')如果用户点击,我必须如何更改 ReadString(???) 以停止阅读:ctrl+s 新行 ( \n) 必须保持输入的组成部分。是否有一些图书馆/框架?感谢您的每一个帮助。
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

这是 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 main


import (

    "bufio"

    "fmt"

    "os"

)


func main() {

    reader := bufio.NewReader(os.Stdin)

    fmt.Println("Enter Text:")

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

    fmt.Println(text)

}


查看完整回答
反对 回复 2021-09-10
  • 1 回答
  • 0 关注
  • 214 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信