有没有类似于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。
参考: