以下代码应该可以帮助您入门。它从标准输入读取并收集inputString
变量中的输入行,直到找到分号。
NSFileHandle *inputFile = [NSFileHandle fileHandleWithStandardInput];
NSMutableString *inputString = [NSMutableString string];
do {
// Read from stdin, check for EOF:
NSData *data = [inputFile availableData];
if ([data length] == 0) {
NSLog(@"EOF");
break;
}
// Convert to NSString, replace newlines by spaces, append to current input:
NSMutableString *tmp = [[NSMutableString alloc] initWithData:data encoding:NSUTF8StringEncoding];
[tmp replaceOccurrencesOfString:@"\n" withString:@" " options:0 range:NSMakeRange(0, [tmp length])];
[inputString appendString:tmp];
// Check for semi-colon:
} while ([inputString rangeOfString:@";"].location == NSNotFound);
NSLog(@"input=%@", inputString);
(请注意,此示例代码简单的检查分号某处输入,不检查分号例如,嵌入在一个字符串。)
多少行你想输入?或者你想输入,直到'EOF'?或者,你会如何确定何时停止? – 2013-03-27 15:23:04
嗨,用户是假设粘贴在控制台中的SQL查询,而不是在一个文件,如 从学生选择名称 ,工作表 其中a = b – Jigsaw2300 2013-03-27 15:43:17
因此,也许扫描,直到关闭“;”? – nielsbot 2013-03-27 15:52:39