Objective c 不按';输入';按钮

Objective c 不按';输入';按钮,objective-c,c,console-application,Objective C,C,Console Application,可能重复: 我需要在console Objective-C应用程序中按下键盘键,而无需按下“回车”按钮 此代码仅在我按“回车”后读取按键代码 int key; key=getchar(); NSLog(@"%i", key); 我需要这样的东西,但不要按“回车”。 如何执行此操作?默认情况下,控制台处于“规范”模式,对输入进行加载处理,直到遇到新行时才将其传递给进程的打开文件描述符。您希望将stdin置于“非规范”模式,以便在字节到达时获取字节: #include <termios.h

可能重复:

我需要在console Objective-C应用程序中按下键盘键,而无需按下“回车”按钮

此代码仅在我按“回车”后读取按键代码

int key;
key=getchar();
NSLog(@"%i", key);
我需要这样的东西,但不要按“回车”。
如何执行此操作?

默认情况下,控制台处于“规范”模式,对输入进行加载处理,直到遇到新行时才将其传递给进程的打开文件描述符。您希望将
stdin
置于“非规范”模式,以便在字节到达时获取字节:

#include <termios.h>

struct termios terminal_info;
tcgetattr(STDIN_FILENO, &terminal_info);
terminal_info.c_lflag &= ~ICANON;
tcsetattr(STDIN_FILENO, TCSANOW, terminal_info);
#包括
结构termios终端信息;
tcgetattr(标准文件号和终端信息);
终端_info.c_lflag&=~ICANON;
tcsetattr(标准文件号、TCSANOW、终端信息);
(您还应该检查
tcgetattr()
tcsetattr()
返回的错误。)