如何在不点击返回键的情况下输入字符或字符串

时间:2011-11-10 12:47:20

标签: c++ objective-c

我正在使用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);

2 个答案:

答案 0 :(得分:1)

阅读tcsetattrtcgetattr的手册。查找标记ICANONIECHO,并查看有关cfmakeraw的部分。文档console_ioctl(4)tty_ioctl(4)可能会引起人们的兴趣,例如确定tty的大小。

答案 1 :(得分:0)

查看http://pwilson.net/sample.html并搜索kbhit.c。该功能应该对你有用,虽然它没有用Objective C进行测试。