相关疑难解决方法(0)

从标准输入中捕获字符,无需等待按下输入

我永远不会记得我是怎么做的,因为它对我来说很少见.但是在C或C++中,从标准输入读取字符而不等待换行符的最佳方法是什么(按回车键).

理想情况下,它也不会将输入字符回显到屏幕上.我只想捕捉击键而不影响控制台屏幕.

c c++ inputstream

163
推荐指数
11
解决办法
19万
查看次数

如何检测按键事件

我的目的是按顺序打印字符串,当用户输入某个字符时,我们暂停进程并读取标准输入内容。我知道可以捕获 os.Interrupt 信号,但我不知道如何捕获标准输入中的事件。我不想扫描并等待用户输入文本。当有按键事件时,该过程停止。

我的问题:如何检测标准输入上的事件?

这是当前的解决方案以及您的建议。Go 例程并不构成最佳解决方案,因为您无法将它们作为线程进行管理。我目前正在继续致力于此工作并随时向您通报最新情况。

func main() {
    quit := make(chan bool)

    scanner := bufio.NewScanner(os.Stdin)
    for scanner.Scan() {
        fmt.Println(scanner.Text())
        fmt.Println("-----------------")
        fmt.Println("Go routine running :", runtime.NumGoroutine())
        go func() {
             select {
                case <-quit:
                return
             default:
                fmt.Println("Text received and changed")
                fmt.Println("-----------------")
                for {
                    timer := time.NewTimer(time.Second * 1)
                    <-timer.C
                    fmt.Println(scanner.Text())
                }
            }

            fmt.Println("Routine closed")
        }()

    }
    if scanner.Err() != nil {
        quit <- false
    }
}
Run Code Online (Sandbox Code Playgroud)

否则,如果我遵循你的解决方案@varius:

func main() {
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
    for {
        timer := time.NewTimer(time.Second …
Run Code Online (Sandbox Code Playgroud)

go

5
推荐指数
1
解决办法
1万
查看次数

为什么在线 C++ IDE 不支持“graphics.h”头文件?

我尝试使用TechGeekBuzz: Best C++ Online Compiler 中的列表使用“graphics.h”头文件使用 C++ 的多个 IDE 编译代码, 但他们标记了错误

1:21:致命错误:graphics.h:没有那个文件或目录

我试图运行的程序是

#include<graphics.h>
#include <conio.h>
int main()
{
    int gd = DETECT, gm;
    initgraph(&gd,&gm, "C:\\tc\\bgi");
    circle(300,300,50);
    closegraph();
    getch();
}
Run Code Online (Sandbox Code Playgroud)

c++ header-files

1
推荐指数
1
解决办法
2362
查看次数

标签 统计

c++ ×2

c ×1

go ×1

header-files ×1

inputstream ×1