1

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];
4

1 に答える 1

1

これは Xcode 4.5 のバグです。コンソールが更新されると、エコーされたすべての入力が表示されます。

于 2012-10-03T05:50:32.970 に答える