编写Objective-C中的命令行工具,该工具接收输入,清除屏幕然后输出

时间:2012-01-17 14:16:44

标签: objective-c bash shell unix command-line

我希望我在这里不要求太多。

我想创建一个将在终端窗口中运行的命令行工具。它将接收来自终端的输入,对字符串执行某些操作,清除屏幕然后输出字符串。

#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 *

为了清楚起见,我想继续输入和输出程序。换句话说,在可执行文件开始运行后输入数据是必要的。不仅仅是它最初执行的时候。

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;
}