加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

控制台 – Golang功能类似于getchar

发布时间:2020-12-16 18:22:39 所属栏目:大数据 来源:网络整理
导读:有没有类似于getchar的功能能够在控制台中处理标签按钮?我想在我的控制台应用程序中做一些完成。 C的getchar()示例: #include stdio.hvoid main(){ char ch; ch = getchar(); printf("Input Char Is :%c",ch);} 相当于: package mainimport ( "bufio" "fm
有没有类似于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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读