如何在 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)
}
- 1 回答
- 0 关注
- 214 浏览
添加回答
举报
0/150
提交
取消