C的getchar()示例:
原文链接:https://www.f2er.com/go/187413.html#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