微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

控制台 – Golang功能类似于getchar

有没有类似于getchar的功能能够在控制台中处理标签按钮?我想在我的控制台应用程序中做一些完成。
C的getchar()示例:
#include <stdio.h>
void main()
{
    char ch;
    ch = getchar();
    printf("Input Char Is :%c",ch);
}

相当于:

package main

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

func main() {

    reader := bufio.NewReader(os.Stdin)
    input,_ := reader.ReadString('\n')

    fmt.Printf("Input Char Is : %v",string([]byte(input)[0]))

    // fmt.Printf("You entered: %v",[]byte(input))
}

最后一个注释行只显示当您按Tab时第一个元素是U 0009(‘CHaraCTER TABULATION’)。

但是对于您的需要(检测选项卡)C的getchar()不适合,因为它需要用户按Enter键。你需要的是像@miku所提到的ncurses的getch()/ readline / jline。有了这些,您实际上等待单次击键。

所以你有多个选择:

>使用ncurses / readline绑定,例如https://code.google.com/p/goncurses/或等同于https://github.com/nsf/termbox
>自己看看http://play.golang.org/p/plwBIIYiqG起点
>使用os.Exec来运行stty或jline

参考:

https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/zhBE5MH4n-Q

https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/S9AO_kHktiY

https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/icMfYF8wJCk

原文地址:https://www.jb51.cc/go/187413.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐