我成功使用 NSFileHandle 读取键盘输入:

NSFileHandle * keyboard = [NSFileHandle fileHandleWithStandardInput];
NSData *inputData = [keyboard availableData];
NSString * input =[[NSString alloc] initWithData:inputData encoding:NSUTF8StringEncoding];

当用户键入时,只有输入的第一个字符会在屏幕上回显。例如,如果我输入 hello, , 仅有的 h 屏幕上回响着。然而,完整的输入被读入字符串中。

正确的回显行为适用于 Xcode 4.2。我目前使用的是 Xcode 4.5。

更新

放弃 NSFileHandle 现在,我尝试使用 scanf. 。然而,存在同样的回声问题。 scanf 代码:

char word[4];
scanf("%s",word);
NSString * input = [[NSString alloc] initWithBytes:word length:4 encoding:NSUTF8StringEncoding];
有帮助吗?

解决方案

这是 Xcode 4.5 中的一个错误。当控制台刷新时,所有回显的输入都会显示出来。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top