当前位置: 首页 > 面试题库 >

与getchar类似的功能

欧阳嘉年
2023-03-14
问题内容

是否有类似于C的Go功能,getchar能够处理控制台中的Tab键?我想在控制台应用程序中完成一些工作。


问题答案:

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之类的东西。有了这些,您实际上可以等待一次击键。

因此,您有多种选择:

  1. 使用ncurses/ readline绑定,例如https://code.google.com/p/goncurses/或类似的https://github.com/nsf/termbox

  2. 自己滚动,请参阅http://play.golang.org/p/plwBIIYiqG作为起点

  3. 用于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



 类似资料:
  • 问题内容: 我正在尝试将一些Python代码移植到Scala。它大量使用了Numpy和Scipy。虽然我已经找到了许多密集矩阵/线性代数库,它们可以作为NumPy的适当替代品(但不是极好的替代品),但我还没有真正找到能够提供我在SciPy中使用的功能的东西。特别是,我正在寻找一个支持稀疏部分本征分解的库(例如SciPy对arpack的包装),然后再寻找SciPy提供的一些简单内容的库(例如直方图)

  • getchar(由标准输入设备内读进一字符) 相关函数 fopen,fread,fscanf,getc 表头文件 #include<stdio.h> 定义函数 int getchar(void); 函数说明 getchar()用来从标准输入设备中读取一个字符。然后将该字符从unsigned char转换成int后返回。 返回值 getchar()会返回读取到的字符,若返回EOF则表示有错误发生。

  • getchar 由标准输入设备内读进一字符 相关函数 fopen,fread,fscanf,getc 表头文件 #include<stdio.h> 定义函数 int getchar(void); 函数说明 getchar()用来从标准输入设备中读取一个字符。然后将该字符从unsigned char转换成int后返回。 返回值 getchar()会返回读取到的字符,若返回EOF则表示有错误发生。

  • 我的代码是从参数:title中选择文本。但我得到的结果是不对的。在我的例子中,类书扩展了媒体。 这是我的疑问。 我的参数是“哈里”。我想只得到一个结果,但我得到了我所有的数据。我的代码有什么错误?请帮忙。

  • 问题内容: 每当输入字段之一发生更改时,我都希望对整个表单进行等效操作。 我知道自AngularJS 1.3起我就有了去抖选项,但它仅适用于单个输入。 我正在寻找适用于整个表格的“反跳” /“更改时”功能。 问题答案: 表单没有内置的方法。 甚至可能不需要它,因为如果您正确组织了视图模型,那么表单输入很可能会绑定到某个范围暴露的属性: 并在视图中: 然后,您可以(使用)深入监视模型的变化(并在所需

  • 问题内容: 我是一名Java程序员,并且在使用Hibernate和Struts的项目上工作了一段时间。 现在,对于我的新项目,我正在研究PHP和Mysql(学习PHP)。是否有任何类似于PHP的Hibernate技术?如果是,有人可以给我链接我可以理解和使用的链接吗? PHP中有POJO概念吗? 问题答案: 在我看来,PHP的最佳ORM是Doctrine。 您可能还希望查看Propel,看看哪种更