gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 03:07:14 25 4
gpt4 key购买 nike

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

reader := bufio.NewReader(os.Stdin)

fmt.Println("Enter Text:")

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

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

是否有一些库/框架?

感谢您的帮助。

干杯

最佳答案

这是 Linux 的答案(也适用于其他 *nix 平台)

Ctrl+S是一个控制字符DC3,意思是“XOFF,停止发送”。如果您按 Ctrl+S,终端将卡住。

Ctrl+Q是一个控制字符DC1,意思是“XON,继续发送”,需要在Ctrl+S之后解冻。

要使用 Ctrl+S,首先使用 stty -ixon 禁用 XON/XOFF(可能在启动脚本中)禁用XON/XOFF后,示例代码如下(DC3在ASCII表中为HEX:13/DEC:19);

package main

import (
"bufio"
"fmt"
"os"
)

func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Println("Enter Text:")
text, _ := reader.ReadString('\x13')
fmt.Println(text)
}

关于input - golang 读取超过一行的文本输入并停止 ctrl+s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27668146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com