我希望我在这里不要求太多。
我想创建一个将在终端窗口中运行的命令行工具。它将接收来自终端的输入,对字符串执行某些操作,清除屏幕然后输出字符串。
#import <Foundation/Foundation.h>
#include <stdlib.h>
int main (int argc, const char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Running....");
// take the argument as an NSString
// do something with the NSString.
// clear the terminal screen.
// output the manipulated screen.
[pool drain];
return 0;
}
这可能吗?有小费吗?我想在Objective-C中尽可能地编码。
谢谢,
编辑1 *
为了清楚起见,我想继续输入和输出程序。换句话说,在可执行文件开始运行后输入数据是必要的。不仅仅是它最初执行的时候。
答案 0 :(得分:4)
这是可能的。在创建项目时,使用Xcode中的“命令行工具”模板。
一个简单的例子可能是:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
@autoreleasepool {
char input[50];
while (true) {
// take the argument as an NSString
NSLog(@"Enter some text please: ");
fgets(input, sizeof input, stdin);
NSString *argument = [[NSString stringWithCString:input encoding:NSUTF8StringEncoding] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
// do something with the NSString.
NSString *uppercase = [argument uppercaseString];
// clear the terminal screen.
system("clear");
// output the manipulated screen.
NSLog(@"Hello, %@!", uppercase);
}
}
return 0;
}