我正在使用Foundation学习Objective C并打印到控制台。我想知道(以及如何)是否可以输入字符串或字符串并自动打印而不需要返回键(或任何键)。显然,下面的简单代码仍然需要返回键。我知道这个代码混合在C& objC但我一直在尝试不同的想法。我也试图在不使用Ncurses的情况下这样做。提前致谢。
char input [1];
NSLog(@"enter key:");
fgets(input, 1, stdin);
NSString *inputString = [[NSString alloc]initWithCString:input];
NSLog(@"Input = %s",input);
我刚刚找到了一个很好的答案如下: //将终端设置为原始模式 system(“stty raw”);
// Wait for single character
char input = getchar();
// Echo input:
// Reset terminal to normal "cooked" mode
system("stty cooked");
// And we're out of here
NSLog(@"INPUT = %c",input);
答案 0 :(得分:1)
阅读tcsetattr
和tcgetattr
的手册。查找标记ICANON
和IECHO
,并查看有关cfmakeraw
的部分。文档console_ioctl(4)
和tty_ioctl(4)
可能会引起人们的兴趣,例如确定tty的大小。
答案 1 :(得分:0)
查看http://pwilson.net/sample.html并搜索kbhit.c。该功能应该对你有用,虽然它没有用Objective C进行测试。