0

コマンドラインツールアプリケーション(Xocde->新しいアプリ->コマンドラインツール)を作成し、問題なく実行しました。ターミナルから実行して、次のようなコマンドライン引数を渡します。

int main(int argc, const char * argv[])
{

    std::cout << "got "<<argc<<" arguments";

    for ( int i = 0; i<argc;i++){
        std::cout << "argument:"<<i<<"= "<<argv[i];
    }

//// some other piece of code 
}

ターミナルで入力した場合

>open VisiMacXsltConverter --args fdafsdfasf i am getting output 

got 1 argumentsargument:0= /Applications/VisiMacXsltConverte

コマンドラインから引数を渡す方法を知りたい

4

2 に答える 2

3

If you use just one - (hyphen) those values will go into a volatile UserDefaults dictionary (will also override other keys for the life of the process).

./program -Param 4

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        NSLog(@"param = %@", [[NSUserDefaults standardUserDefaults] valueForKey:@"Param"]);        
    }
    return 0;
}

or you can just pass these in how ever you want and use the following which will give you an NSArray of NSStrings.

[[NSProcessInfo processInfo] arguments];
于 2012-05-17T08:44:58.110 に答える
1

なぜオープンで実行したいのですか?

私はそれを実行します($ PATHにある場合は、「。/」を省略してください):

./VisiMacXsltConverter arg1 arg2 arg3 arg4

私があなたの質問を誤解していないことを願っています。

于 2012-05-17T09:24:50.117 に答える