首页 >后端开发 >Golang >如何在 Go 中复制 C 的 `getchar()` 功能,包括 Tab 按检测?

如何在 Go 中复制 C 的 `getchar()` 功能,包括 Tab 按检测?

Patricia Arquette
Patricia Arquette原创
2024-12-19 08:56:08715浏览

How Can I Replicate C's `getchar()` Functionality in Go, Including Tab Press Detection?

Go 函数类似于 C 的 Getchar

在 C 编程中,getchar() 是一个常用的函数,用于从控制台读取单个字符。然而,在使用 Go 时,需要类似的函数来处理各种用例,包括 Tab 按检测。

Go 中 getchar() 的等效项

在 Go 中实现与 getchar() 类似的功能)在 C 中,可以使用以下代码:

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]))

}

此代码使用 bufio.NewReader 从控制台读取单个字符并将其存储在变量输入。输入字节数组的第一个元素表示按下的字符。

处理 Tab 按下

对于专门检测 Tab 按下, getchar() 不适合,因为它需要按 Enter 键。相反,请考虑使用库或实现您自己的函数来捕获单个击键,例如:

  • 使用 ncurses 或 readline 绑定
  • 创建自定义函数(请参阅 http 中的起点) ://play.golang.org/p/plwBIIYiqG)
  • 执行 stty 或 jLine 等命令使用 os.Exec

附加说明

请务必记住,这些解决方案的实现和对处理选项卡按下的支持可能有所不同。请参阅参考资料中提供的资源以获取更多信息信息:

  • https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/zhBE5MH4n-Q
  • https://groups.google .com/foru m/?fromgroups=#!topic/golang-nuts/S9AO_kHktiY
  • https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/icMfYF8wJCk

以上是如何在 Go 中复制 C 的 `getchar()` 功能,包括 Tab 按检测?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn