Hi I am making a program that gets input from the keyboard and I was wondering if there was any way to get input from the keyboard and store it in an NSString
object.
views:
470answers:
1
+1
A:
If you are doing this as a command-line app, then here's code I wrote last week to get a line from the command prompt (I made it an NSString
category):
+ (NSString *) stringFromStandardInDelimitedByCharactersInSet:(NSCharacterSet *)delimiters {
NSMutableString * string = [NSMutableString string];
unichar input = '\0';
while (input = getchar()) {
if ([delimiters characterIsMember:input]) { break; }
[string appendFormat:@"%C", input];
}
return string;
}
And then I'd use it like this:
NSString * input = [NSString stringFromStandardInDelimitedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
It doesn't handle unicode characters very well (despite using a unichar), because getchar() only returns a regular char. However, for basic command-line text entry, it works pretty well. However, be warned that this will block the thread on which it's executed (since getchar() is a blocking call).
Dave DeLong
2009-11-29 23:10:47