我制作了一个brainfuck解释器,并且“,”需要在不输入的情况下获取一个字符,但我发现它们不是像getch这样的函数,即input_character
我尝试过在Vlang中嵌入C代码并使用C2V,但失败了。
我期望用户按任意键不需要按回车键,该函数返回键盘扫描码
确实,Vlang 的默认模块中有像“builtin”这样的功能,例如:
fn input_character() int
不过此功能需要按回车键才能操作。
您描述的函数“getch()”默认情况下不属于标准 C 库的一部分。 您需要使用“conio”或其在 Linux 上的等效项,例如“ncurses”来实现您正在寻找的内容。
提供 Linux 上 Vlang 的代码示例,如下所示:
#flag linux -I/usr/include/ncurses
#flag linux -lncurses
#include "ncurses.h"
fn C.initscr() ?
fn C.cbreak()
fn C.noecho()
fn C.getch() int
fn C.endwin() int
fn main() {
C.initscr()
C.cbreak()
C.noecho()
char_ := C.getch()
C.endwin()
println('Character read: ${char_.str()}')
}
为了解释一下代码,我们导入 ncurses 库,然后声明 ncurses 库中的函数,以便它们可以在 Vlang 中使用。之后,我们在主函数中使用它们。
您可以阅读官方文档了解如何将C代码与V代码集成。
我还建议阅读不同库(例如 conio 或 ncurses)的文档,以达到所需的结果。