Swift中的getch()等价物:从stdin中读取单个字符而不使用换行符

Swift中的getch()等价物:从stdin中读取单个字符而不使用换行符,swift,terminal,stdin,ncurses,getch,Swift,Terminal,Stdin,Ncurses,Getch,我正在寻找一个类似于C的Swift函数,它可以从终端输入中读取单个字符,而无需用户按下返回键。这是不够的,因为它们都需要回报 ncurses的一个功能看起来很有希望,但不幸的是它占据了整个窗口的显示空间。在网上搜索了一段时间后,我发现了以下内容(部分基于): 导入基础 扩展文件句柄{ func enableRawMode()->termios{ var raw=termios() tcgetattr(self.fileDescriptor和原始文件) 让原始=原始 原始c|lflag&=~UIn

我正在寻找一个类似于C的Swift函数,它可以从终端输入中读取单个字符,而无需用户按下返回键。这是不够的,因为它们都需要回报


ncurses的一个功能看起来很有希望,但不幸的是它占据了整个窗口的显示空间。

在网上搜索了一段时间后,我发现了以下内容(部分基于):

<代码>导入基础 扩展文件句柄{ func enableRawMode()->termios{ var raw=termios() tcgetattr(self.fileDescriptor和原始文件) 让原始=原始 原始c|lflag&=~UInt(ECHO | ICANON) tcsetattr(self.fileDescriptor、TCSADRAIN和raw) 归还原件 } func restoreRawMode(originalTerm:termios){ 变量项=原始变量 tcsetattr(self.fileDescriptor、TCSADRAIN和term) } } func getch()->UInt8{ let handle=FileHandle.standardInput let term=handle.enableRawMode() 延迟{handle.restoreRawMode(originalTerm:term)} 变量字节:UInt8=0 读取(handle.fileDescriptor和字节,1) 返回字节 } fputs(“按任意键继续…”,标准输出) fflush(标准输出) 设x=getch() 打印() 打印(“获取字符:\(UnicodeScalar(x))”)